From 7fb85e62d5ad8ec0bf11a02bddeb5f58d0a49dc5 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 16 Apr 2024 23:04:07 +0700 Subject: [PATCH] update periodic table --- .../modules/cheatsheet/data_periodictable.js | 96 ++++++++++--------- .../ags/modules/cheatsheet/periodictable.js | 36 ++++++- .../generate_colors_material.py | 2 +- .config/ags/scss/_cheatsheet.scss | 58 +++++++++-- .config/ags/scss/_lib_classes.scss | 3 + 5 files changed, 138 insertions(+), 57 deletions(-) diff --git a/.config/ags/modules/cheatsheet/data_periodictable.js b/.config/ags/modules/cheatsheet/data_periodictable.js index 09e12ba3b..c56ae0971 100644 --- a/.config/ags/modules/cheatsheet/data_periodictable.js +++ b/.config/ags/modules/cheatsheet/data_periodictable.js @@ -17,7 +17,7 @@ export const periodicTable = [ { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, - { name: 'Helium', symbol: 'He', number: 2, weight: 4.0026, type: 'noblegas' }, + { name: 'Helium', symbol: 'He', number: 2, weight: 4.003, type: 'noblegas' }, ], [ { name: 'Lithium', symbol: 'Li', number: 3, weight: 6.941, type: 'metal' }, @@ -32,18 +32,18 @@ export const periodicTable = [ { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, - { name: 'Boron', symbol: 'B', number: 5, weight: 10.811, type: 'nonmetal' }, - { name: 'Carbon', symbol: 'C', number: 6, weight: 12.011, type: 'nonmetal' }, - { name: 'Nitrogen', symbol: 'N', number: 7, weight: 14.007, type: 'nonmetal' }, - { name: 'Oxygen', symbol: 'O', number: 8, weight: 15.999, type: 'nonmetal' }, - { name: 'Fluorine', symbol: 'F', number: 9, weight: 18.998, type: 'nonmetal' }, + { name: 'Boron', symbol: 'B', number: 5, weight: 10.81, type: 'nonmetal' }, + { name: 'Carbon', symbol: 'C', number: 6, weight: 12.01, type: 'nonmetal' }, + { name: 'Nitrogen', symbol: 'N', number: 7, weight: 14.01, type: 'nonmetal' }, + { name: 'Oxygen', symbol: 'O', number: 8, weight: 16, type: 'nonmetal' }, + { name: 'Fluorine', symbol: 'F', number: 9, weight: 19, type: 'nonmetal' }, { name: 'Neon', symbol: 'Ne', number: 10, weight: 20.18, type: 'noblegas' }, ], [ - { name: 'Sodium', symbol: 'Na', number: 11, weight: 22.9898, type: 'metal' }, - { name: 'Magnesium', symbol: 'Mg', number: 12, weight: 24.305, type: 'metal' }, + { name: 'Sodium', symbol: 'Na', number: 11, weight: 22.99, type: 'metal' }, + { name: 'Magnesium', symbol: 'Mg', number: 12, weight: 24.31, type: 'metal' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, @@ -54,47 +54,47 @@ export const periodicTable = [ { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, { name: '', symbol: '', number: -1, weight: 0, type: 'empty' }, - { name: 'Aluminum', symbol: 'Al', number: 13, weight: 26.982, type: 'metal' }, - { name: 'Silicon', symbol: 'Si', number: 14, weight: 28.086, type: 'nonmetal' }, - { name: 'Phosphorus', symbol: 'P', number: 15, weight: 30.974, type: 'nonmetal' }, - { name: 'Sulfur', symbol: 'S', number: 16, weight: 32.065, type: 'nonmetal' }, - { name: 'Chlorine', symbol: 'Cl', number: 17, weight: 35.453, type: 'nonmetal' }, - { name: 'Argon', symbol: 'Ar', number: 18, weight: 39.948, type: 'noblegas' }, + { name: 'Aluminum', symbol: 'Al', number: 13, weight: 26.98, type: 'metal' }, + { name: 'Silicon', symbol: 'Si', number: 14, weight: 28.09, type: 'nonmetal' }, + { name: 'Phosphorus', symbol: 'P', number: 15, weight: 30.97, type: 'nonmetal' }, + { name: 'Sulfur', symbol: 'S', number: 16, weight: 32.07, type: 'nonmetal' }, + { name: 'Chlorine', symbol: 'Cl', number: 17, weight: 35.45, type: 'nonmetal' }, + { name: 'Argon', symbol: 'Ar', number: 18, weight: 39.95, type: 'noblegas' }, ], [ { name: 'Potassium', symbol: 'K', number: 19, weight: 39.098, type: 'metal' }, { name: 'Calcium', symbol: 'Ca', number: 20, weight: 40.078, type: 'metal' }, { name: 'Scandium', symbol: 'Sc', number: 21, weight: 44.956, type: 'metal' }, - { name: 'Titanium', symbol: 'Ti', number: 22, weight: 47.867, type: 'metal' }, - { name: 'Vanadium', symbol: 'V', number: 23, weight: 50.942, type: 'metal' }, - { name: 'Chromium', symbol: 'Cr', number: 24, weight: 51.996, type: 'metal', icon: 'chromium-browser' }, - { name: 'Manganese', symbol: 'Mn', number: 25, weight: 54.938, type: 'metal' }, - { name: 'Iron', symbol: 'Fe', number: 26, weight: 55.845, type: 'metal' }, - { name: 'Cobalt', symbol: 'Co', number: 27, weight: 58.933, type: 'metal' }, - { name: 'Nickel', symbol: 'Ni', number: 28, weight: 58.693, type: 'metal' }, - { name: 'Copper', symbol: 'Cu', number: 29, weight: 63.546, type: 'metal' }, + { name: 'Titanium', symbol: 'Ti', number: 22, weight: 47.87, type: 'metal' }, + { name: 'Vanadium', symbol: 'V', number: 23, weight: 50.94, type: 'metal' }, + { name: 'Chromium', symbol: 'Cr', number: 24, weight: 52, type: 'metal', icon: 'chromium-browser' }, + { name: 'Manganese', symbol: 'Mn', number: 25, weight: 54.94, type: 'metal' }, + { name: 'Iron', symbol: 'Fe', number: 26, weight: 55.85, type: 'metal' }, + { name: 'Cobalt', symbol: 'Co', number: 27, weight: 58.93, type: 'metal' }, + { name: 'Nickel', symbol: 'Ni', number: 28, weight: 58.69, type: 'metal' }, + { name: 'Copper', symbol: 'Cu', number: 29, weight: 63.55, type: 'metal' }, { name: 'Zinc', symbol: 'Zn', number: 30, weight: 65.38, type: 'metal' }, - { name: 'Gallium', symbol: 'Ga', number: 31, weight: 69.723, type: 'metal' }, - { name: 'Germanium', symbol: 'Ge', number: 32, weight: 72.630, type: 'metal' }, - { name: 'Arsenic', symbol: 'As', number: 33, weight: 74.9216, type: 'nonmetal' }, + { name: 'Gallium', symbol: 'Ga', number: 31, weight: 69.72, type: 'metal' }, + { name: 'Germanium', symbol: 'Ge', number: 32, weight: 72.63, type: 'metal' }, + { name: 'Arsenic', symbol: 'As', number: 33, weight: 74.92, type: 'nonmetal' }, { name: 'Selenium', symbol: 'Se', number: 34, weight: 78.96, type: 'nonmetal' }, { name: 'Bromine', symbol: 'Br', number: 35, weight: 79.904, type: 'nonmetal' }, - { name: 'Krypton', symbol: 'Kr', number: 36, weight: 83.798, type: 'noblegas' }, + { name: 'Krypton', symbol: 'Kr', number: 36, weight: 83.8, type: 'noblegas' }, ], [ - { name: 'Rubidium', symbol: 'Rb', number: 37, weight: 85.4678, type: 'metal' }, + { name: 'Rubidium', symbol: 'Rb', number: 37, weight: 85.47, type: 'metal' }, { name: 'Strontium', symbol: 'Sr', number: 38, weight: 87.62, type: 'metal' }, - { name: 'Yttrium', symbol: 'Y', number: 39, weight: 88.9059, type: 'metal' }, - { name: 'Zirconium', symbol: 'Zr', number: 40, weight: 91.224, type: 'metal' }, - { name: 'Niobium', symbol: 'Nb', number: 41, weight: 92.906, type: 'metal' }, + { name: 'Yttrium', symbol: 'Y', number: 39, weight: 88.91, type: 'metal' }, + { name: 'Zirconium', symbol: 'Zr', number: 40, weight: 91.22, type: 'metal' }, + { name: 'Niobium', symbol: 'Nb', number: 41, weight: 92.91, type: 'metal' }, { name: 'Molybdenum', symbol: 'Mo', number: 42, weight: 95.94, type: 'metal' }, { name: 'Technetium', symbol: 'Tc', number: 43, weight: 98, type: 'metal' }, { name: 'Ruthenium', symbol: 'Ru', number: 44, weight: 101.07, type: 'metal' }, { name: 'Rhodium', symbol: 'Rh', number: 45, weight: 102.91, type: 'metal' }, { name: 'Palladium', symbol: 'Pd', number: 46, weight: 106.42, type: 'metal' }, - { name: 'Silver', symbol: 'Ag', number: 47, weight: 107.868, type: 'metal' }, - { name: 'Cadmium', symbol: 'Cd', number: 48, weight: 112.411, type: 'metal' }, - { name: 'Indium', symbol: 'In', number: 49, weight: 114.818, type: 'metal' }, + { name: 'Silver', symbol: 'Ag', number: 47, weight: 107.87, type: 'metal' }, + { name: 'Cadmium', symbol: 'Cd', number: 48, weight: 112.41, type: 'metal' }, + { name: 'Indium', symbol: 'In', number: 49, weight: 114.82, type: 'metal' }, { name: 'Tin', symbol: 'Sn', number: 50, weight: 118.71, type: 'metal' }, { name: 'Antimony', symbol: 'Sb', number: 51, weight: 121.76, type: 'metal' }, { name: 'Tellurium', symbol: 'Te', number: 52, weight: 127.6, type: 'nonmetal' }, @@ -102,21 +102,21 @@ export const periodicTable = [ { name: 'Xenon', symbol: 'Xe', number: 54, weight: 131.29, type: 'noblegas' }, ], [ - { name: 'Cesium', symbol: 'Cs', number: 55, weight: 132.905, type: 'metal' }, - { name: 'Barium', symbol: 'Ba', number: 56, weight: 137.327, type: 'metal' }, - { name: 'Lanthanum', symbol: 'La', number: 57, weight: 138.906, type: 'lanthanum' }, + { name: 'Cesium', symbol: 'Cs', number: 55, weight: 132.91, type: 'metal' }, + { name: 'Barium', symbol: 'Ba', number: 56, weight: 137.33, type: 'metal' }, + { name: 'Lanthanum', symbol: 'La', number: 57, weight: 138.91, type: 'lanthanum' }, { name: 'Hafnium', symbol: 'Hf', number: 72, weight: 178.49, type: 'metal' }, - { name: 'Tantalum', symbol: 'Ta', number: 73, weight: 180.948, type: 'metal' }, + { name: 'Tantalum', symbol: 'Ta', number: 73, weight: 180.95, type: 'metal' }, { name: 'Wolfram', symbol: 'W', number: 74, weight: 183.84, type: 'metal' }, - { name: 'Rhenium', symbol: 'Re', number: 75, weight: 186.207, type: 'metal' }, + { name: 'Rhenium', symbol: 'Re', number: 75, weight: 186.21, type: 'metal' }, { name: 'Osmium', symbol: 'Os', number: 76, weight: 190.23, type: 'metal' }, - { name: 'Iridium', symbol: 'Ir', number: 77, weight: 192.217, type: 'metal' }, - { name: 'Platinum', symbol: 'Pt', number: 78, weight: 195.085, type: 'metal' }, - { name: 'Gold', symbol: 'Au', number: 79, weight: 196.967, type: 'metal' }, + { name: 'Iridium', symbol: 'Ir', number: 77, weight: 192.22, type: 'metal' }, + { name: 'Platinum', symbol: 'Pt', number: 78, weight: 195.09, type: 'metal' }, + { name: 'Gold', symbol: 'Au', number: 79, weight: 196.97, type: 'metal' }, { name: 'Mercury', symbol: 'Hg', number: 80, weight: 200.59, type: 'metal' }, - { name: 'Thallium', symbol: 'Tl', number: 81, weight: 204.383, type: 'metal' }, + { name: 'Thallium', symbol: 'Tl', number: 81, weight: 204.38, type: 'metal' }, { name: 'Lead', symbol: 'Pb', number: 82, weight: 207.2, type: 'metal' }, - { name: 'Bismuth', symbol: 'Bi', number: 83, weight: 208.980, type: 'metal' }, + { name: 'Bismuth', symbol: 'Bi', number: 83, weight: 208.98, type: 'metal' }, { name: 'Polonium', symbol: 'Po', number: 84, weight: 209, type: 'metal' }, { name: 'Astatine', symbol: 'At', number: 85, weight: 210, type: 'nonmetal' }, { name: 'Radon', symbol: 'Rn', number: 86, weight: 222, type: 'noblegas' }, @@ -182,4 +182,12 @@ export const series = [ { name: 'Nobelium', symbol: 'No', number: 102, weight: 259, type: 'actinium' }, { name: 'Lawrencium', symbol: 'Lr', number: 103, weight: 262, type: 'actinium' }, ], -] \ No newline at end of file +]; + +export const niceTypes = { + 'metal': "Metal", + 'nonmetal': "Nonmetal", + 'noblegas': "Noble gas", + 'lanthanum': "Lanthanum", + 'actinium': "Actinium" +} diff --git a/.config/ags/modules/cheatsheet/periodictable.js b/.config/ags/modules/cheatsheet/periodictable.js index dc3d86323..e7dcd4aad 100644 --- a/.config/ags/modules/cheatsheet/periodictable.js +++ b/.config/ags/modules/cheatsheet/periodictable.js @@ -1,5 +1,5 @@ import Widget from 'resource:///com/github/Aylur/ags/widget.js'; -import { periodicTable, series } from "./data_periodictable.js"; +import { niceTypes, periodicTable, series } from "./data_periodictable.js"; const { Box, Button, Icon, Label, Revealer } = Widget; export default () => { @@ -9,11 +9,11 @@ export default () => { className: `cheatsheet-periodictable-${element.type}`, children: element.name == '' ? null : [ Box({ - className: 'padding-8', + className: 'padding-left-8 padding-right-8 padding-top-8', children: [ Label({ label: `${element.number}`, - className: "txt-tiny", + className: "cheatsheet-periodictable-elementnum txt-tiny txt-bold", }), Box({ hexpand: true }), Label({ @@ -36,6 +36,22 @@ export default () => { ] }) } + const BoardColor = (type) => Box({ + className: 'spacing-h-5', + children: [ + Box({ + homogeneous: true, + className: `cheatsheet-periodictable-legend-color-wrapper`, + children: [Box({ + className: `cheatsheet-periodictable-legend-color-${type}`, + })] + }), + Label({ + label: `${niceTypes[type]}`, + className: "txt-small", + }) + ] + }) const mainBoard = Box({ hpack: 'center', vertical: true, @@ -54,12 +70,24 @@ export default () => { children: row.map((element, _) => ElementTile(element)) })), }); + const legend = Box({ + hpack: 'center', + className: 'spacing-h-10', + children: [ + BoardColor('metal'), + BoardColor('nonmetal'), + BoardColor('noblegas'), + BoardColor('lanthanum'), + BoardColor('actinium'), + ] + }) return Box({ vertical: true, className: 'spacing-v-20', children: [ mainBoard, - seriesBoard + seriesBoard, + legend ] }) } \ No newline at end of file diff --git a/.config/ags/scripts/color_generation/generate_colors_material.py b/.config/ags/scripts/color_generation/generate_colors_material.py index 1dfe0fd19..bf400a937 100755 --- a/.config/ags/scripts/color_generation/generate_colors_material.py +++ b/.config/ags/scripts/color_generation/generate_colors_material.py @@ -21,7 +21,7 @@ parser.add_argument('--transparency', type=str, choices=['opaque', 'transparent' parser.add_argument('--termscheme', type=str, default=None, help='JSON file containg the terminal scheme for generating term colors') parser.add_argument('--harmony', type=float , default=0.8, help='(0-1) Color hue shift towards accent') parser.add_argument('--harmonize_threshold', type=float , default=100, help='(0-180) Max threshold angle to limit color hue shift') -parser.add_argument('--term_fg_boost', type=float , default=0.25, help='Make terminal foreground more different from the background') +parser.add_argument('--term_fg_boost', type=float , default=0.35, help='Make terminal foreground more different from the background') parser.add_argument('--blend_bg_fg', action='store_true', default=False, help='Shift terminal background or foreground towards accent') parser.add_argument('--cache', type=str, default=None, help='file path to store the generated color') parser.add_argument('--debug', action='store_true', default=False, help='debug mode') diff --git a/.config/ags/scss/_cheatsheet.scss b/.config/ags/scss/_cheatsheet.scss index af035b961..336fd9a59 100644 --- a/.config/ags/scss/_cheatsheet.scss +++ b/.config/ags/scss/_cheatsheet.scss @@ -72,14 +72,24 @@ .cheatsheet-periodictable-elementsymbol { @include readingfont; - font-size: 1.6363rem; + font-size: 1.705rem; font-weight: bold; } -.cheatsheet-periodictable-element { - @include cheatsheet-periodictable-element; +.cheatsheet-periodictable-elementnum { + @include full-rounding; + min-width: 1.364rem; + min-height: 1.364rem; + background-color: $term0; + color: $onBackground; } +$colormetal: $term2; +$colornonmetal: $term4; +$colornoblegas: $term5; +$colorlanthanum: $term3; +$coloractinium: $term7; + .cheatsheet-periodictable-empty { @include small-rounding; min-width: 5.455rem; @@ -88,29 +98,61 @@ .cheatsheet-periodictable-metal { @include cheatsheet-periodictable-element; - background-color: $term2; + background-color: $colormetal; color: $term0; } .cheatsheet-periodictable-nonmetal { @include cheatsheet-periodictable-element; - background-color: $term4; + background-color: $colornonmetal; color: $term0; } .cheatsheet-periodictable-noblegas { @include cheatsheet-periodictable-element; - background-color: $term5; + background-color: $colornoblegas; color: $term0; } .cheatsheet-periodictable-lanthanum { @include cheatsheet-periodictable-element; - background-color: $term3; + background-color: $colorlanthanum; color: $term0; } .cheatsheet-periodictable-actinium { @include cheatsheet-periodictable-element; - background-color: $term7; + background-color: $coloractinium; color: $term0; +} + +.cheatsheet-periodictable-legend-color-wrapper { + @include full-rounding; + padding: 0.273rem; + border: 0.136rem solid $onLayer0; +} + +@mixin cheatsheet-periodictable-legend-color { + @include full-rounding; + min-width: 1.023rem; + min-height: 1.023rem; +} + +.cheatsheet-periodictable-legend-color-metal { + @include cheatsheet-periodictable-legend-color; + background-color: $colormetal; +} +.cheatsheet-periodictable-legend-color-nonmetal { + @include cheatsheet-periodictable-legend-color; + background-color: $colornonmetal; +} +.cheatsheet-periodictable-legend-color-noblegas { + @include cheatsheet-periodictable-legend-color; + background-color: $colornoblegas; +}.cheatsheet-periodictable-legend-color-lanthanum { + @include cheatsheet-periodictable-legend-color; + background-color: $colorlanthanum; +} +.cheatsheet-periodictable-legend-color-actinium { + @include cheatsheet-periodictable-legend-color; + background-color: $coloractinium; } \ No newline at end of file diff --git a/.config/ags/scss/_lib_classes.scss b/.config/ags/scss/_lib_classes.scss index b4b66326f..6e354b73e 100644 --- a/.config/ags/scss/_lib_classes.scss +++ b/.config/ags/scss/_lib_classes.scss @@ -391,6 +391,9 @@ .margin-#{$dir}-#{$spacing} { margin-#{$dir}: 0.068rem * $spacing; } + .padding-#{$dir}-#{$spacing} { + padding-#{$dir}: 0.068rem * $spacing; + } } .padding-#{$spacing} { padding: 0.068rem * $spacing;