@shohojdhara/atomix 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -1
- package/README.md +41 -24
- package/dist/atomix.css +540 -666
- package/dist/atomix.min.css +3 -3
- package/dist/index.d.ts +7559 -5717
- package/dist/index.esm.js +5013 -2301
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +5084 -2356
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/themes/applemix.css +1683 -722
- package/dist/themes/applemix.css.map +1 -0
- package/dist/themes/applemix.min.css +13 -10
- package/dist/themes/boomdevs.css +1358 -544
- package/dist/themes/boomdevs.css.map +1 -0
- package/dist/themes/boomdevs.min.css +13 -10
- package/dist/themes/esrar.css +1743 -718
- package/dist/themes/esrar.css.map +1 -0
- package/dist/themes/esrar.min.css +41 -7
- package/dist/themes/flashtrade.css +1735 -752
- package/dist/themes/flashtrade.css.map +1 -0
- package/dist/themes/flashtrade.min.css +19 -13
- package/dist/themes/mashroom.css +1765 -787
- package/dist/themes/mashroom.css.map +1 -0
- package/dist/themes/mashroom.min.css +87 -38
- package/dist/themes/shaj-default.css +1685 -713
- package/dist/themes/shaj-default.css.map +1 -0
- package/dist/themes/shaj-default.min.css +11 -7
- package/package.json +95 -26
- package/scripts/atomix-cli.js +1428 -0
- package/scripts/build-themes.js +208 -0
- package/scripts/cli/interactive-init.js +528 -0
- package/scripts/cli/migration-tools.js +603 -0
- package/scripts/cli/token-manager.js +519 -0
- package/scripts/sync-theme-config.js +309 -0
- package/src/components/List/ListGroup.tsx +1 -2
- package/src/components/Popover/Popover.tsx +2 -2
- package/src/components/Tooltip/Tooltip.stories.tsx +49 -12
- package/src/components/Tooltip/Tooltip.tsx +32 -58
- package/src/lib/composables/useAtomixGlass.ts +46 -46
- package/src/lib/composables/useTooltip.ts +285 -0
- package/src/lib/constants/cssVariables.ts +390 -0
- package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +151 -0
- package/src/lib/hooks/index.ts +19 -0
- package/src/lib/hooks/useComponentCustomization.ts +175 -0
- package/src/lib/index.ts +10 -1
- package/src/lib/patterns/__tests__/slots.test.ts +108 -0
- package/src/lib/patterns/index.ts +35 -0
- package/src/lib/patterns/slots.tsx +421 -0
- package/src/lib/theme/__tests__/ThemeBuilder.test.ts +223 -0
- package/src/lib/theme/builders/ThemeBuilder.ts +372 -0
- package/src/lib/theme/config/index.ts +21 -0
- package/src/lib/theme/config/loader.ts +276 -0
- package/src/lib/theme/config/types.ts +98 -0
- package/src/lib/theme/config/validator.ts +326 -0
- package/src/lib/theme/constants.ts +183 -0
- package/src/lib/theme/core/ThemeCache.ts +283 -0
- package/src/lib/theme/core/ThemeEngine.test.ts +146 -0
- package/src/lib/theme/core/ThemeEngine.ts +657 -0
- package/src/lib/theme/core/ThemeRegistry.ts +284 -0
- package/src/lib/theme/core/ThemeValidator.ts +530 -0
- package/src/lib/theme/core/index.ts +24 -0
- package/src/lib/theme/createTheme.ts +83 -204
- package/src/lib/theme/cssVariableMapper.ts +261 -0
- package/src/lib/theme/devtools/CLI.ts +279 -0
- package/src/lib/theme/devtools/Inspector.tsx +594 -0
- package/src/lib/theme/devtools/Preview.tsx +392 -0
- package/src/lib/theme/devtools/index.ts +21 -0
- package/src/lib/theme/errors.test.ts +207 -0
- package/src/lib/theme/errors.ts +233 -0
- package/src/lib/theme/generateCSSVariables.ts +93 -9
- package/src/lib/theme/generators/CSSGenerator.ts +311 -0
- package/src/lib/theme/generators/ConfigGenerator.ts +287 -0
- package/src/lib/theme/generators/TypeGenerator.ts +228 -0
- package/src/lib/theme/generators/index.ts +21 -0
- package/src/lib/theme/i18n/index.ts +9 -0
- package/src/lib/theme/i18n/rtl.ts +325 -0
- package/src/lib/theme/index.ts +36 -109
- package/src/lib/theme/monitoring/ThemeAnalytics.ts +409 -0
- package/src/lib/theme/monitoring/index.ts +17 -0
- package/src/lib/theme/overrides/ComponentOverrides.ts +243 -0
- package/src/lib/theme/overrides/index.ts +15 -0
- package/src/lib/theme/runtime/ThemeApplicator.ts +252 -0
- package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +233 -0
- package/src/lib/theme/runtime/ThemeManager.test.ts +176 -0
- package/src/lib/theme/runtime/ThemeManager.ts +442 -0
- package/src/lib/theme/runtime/ThemeProvider.tsx +318 -0
- package/src/lib/theme/runtime/index.ts +17 -0
- package/src/lib/theme/runtime/useTheme.ts +52 -0
- package/src/lib/theme/themeUtils.ts +27 -5
- package/src/lib/theme/types.ts +62 -1
- package/src/lib/theme/utils.ts +23 -22
- package/src/lib/theme/whitelabel/WhiteLabelManager.ts +364 -0
- package/src/lib/theme/whitelabel/index.ts +13 -0
- package/src/lib/theme-tools.ts +185 -0
- package/src/lib/types/components.ts +194 -0
- package/src/lib/types/partProps.ts +426 -0
- package/src/lib/utils/__tests__/componentUtils.test.ts +144 -0
- package/src/lib/utils/componentUtils.ts +163 -0
- package/src/lib/utils/index.ts +17 -57
- package/src/styles/01-settings/_settings.badge.scss +1 -1
- package/src/styles/01-settings/_settings.callout.scss +1 -1
- package/src/styles/01-settings/_settings.card.scss +1 -1
- package/src/styles/01-settings/_settings.colors.scss +10 -10
- package/src/styles/01-settings/_settings.input.scss +1 -1
- package/src/styles/01-settings/_settings.navbar.scss +1 -1
- package/src/styles/01-settings/_settings.tooltip.scss +1 -1
- package/src/styles/01-settings/_settings.upload.scss +1 -1
- package/src/styles/06-components/_components.chart.scss +2 -2
- package/src/styles/06-components/_components.tooltip.scss +31 -81
- package/src/styles/99-utilities/_utilities.border.scss +27 -58
- package/src/styles/99-utilities/_utilities.gradient.scss +12 -0
- package/src/styles/99-utilities/_utilities.position.scss +8 -15
- package/src/styles/99-utilities/_utilities.scss +2 -0
- package/src/styles/99-utilities/_utilities.spacing.scss +76 -121
- package/src/styles/99-utilities/_utilities.text.scss +30 -49
- package/src/themes/README.md +443 -0
- package/src/themes/THEME_CHECKLIST.md +74 -0
- package/src/themes/applemix/01-settings/_index.scss +24 -0
- package/src/themes/applemix/01-settings/_settings.animations.scss +0 -0
- package/src/themes/applemix/01-settings/_settings.background.scss +6 -0
- package/src/themes/applemix/01-settings/_settings.colors.scss +75 -0
- package/src/themes/applemix/01-settings/_settings.config.scss +15 -0
- package/src/themes/applemix/01-settings/_settings.typography.scss +30 -0
- package/src/themes/applemix/02-tools/_index.scss +4 -0
- package/src/themes/applemix/03-generic/_index.scss +7 -0
- package/src/themes/applemix/04-elements/_index.scss +7 -0
- package/src/themes/applemix/05-objects/_index.scss +7 -0
- package/src/themes/applemix/06-components/_index.scss +15 -0
- package/src/themes/applemix/99-utilities/_index.scss +7 -0
- package/src/themes/applemix/README.md +378 -0
- package/src/themes/applemix/index.scss +33 -0
- package/src/themes/boomdevs/01-settings/_index.scss +38 -0
- package/src/themes/boomdevs/01-settings/_settings.accordion.scss +12 -0
- package/src/themes/boomdevs/01-settings/_settings.animations.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.avatar.scss +9 -0
- package/src/themes/boomdevs/01-settings/_settings.badge.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.border-radius.scss +16 -0
- package/src/themes/boomdevs/01-settings/_settings.border.scss +10 -0
- package/src/themes/boomdevs/01-settings/_settings.box-shadow.scss +14 -0
- package/src/themes/boomdevs/01-settings/_settings.breadcrumb.scss +13 -0
- package/src/themes/boomdevs/01-settings/_settings.breakpoints.scss +15 -0
- package/src/themes/boomdevs/01-settings/_settings.button.scss +9 -0
- package/src/themes/boomdevs/01-settings/_settings.callout.scss +9 -0
- package/src/themes/boomdevs/01-settings/_settings.card.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.checkbox.scss +9 -0
- package/src/themes/boomdevs/01-settings/_settings.colors.scss +145 -0
- package/src/themes/boomdevs/01-settings/_settings.dropdown.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.grid.scss +16 -0
- package/src/themes/boomdevs/01-settings/_settings.input.scss +14 -0
- package/src/themes/boomdevs/01-settings/_settings.link.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.list.scss +10 -0
- package/src/themes/boomdevs/01-settings/_settings.modal.scss +16 -0
- package/src/themes/boomdevs/01-settings/_settings.navbar.scss +16 -0
- package/src/themes/boomdevs/01-settings/_settings.pagination.scss +13 -0
- package/src/themes/boomdevs/01-settings/_settings.progress.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.rating.scss +10 -0
- package/src/themes/boomdevs/01-settings/_settings.spacing.scss +33 -0
- package/src/themes/boomdevs/01-settings/_settings.spinner.scss +11 -0
- package/src/themes/boomdevs/01-settings/_settings.steps.scss +12 -0
- package/src/themes/boomdevs/01-settings/_settings.tabs.scss +12 -0
- package/src/themes/boomdevs/01-settings/_settings.todo.scss +15 -0
- package/src/themes/boomdevs/01-settings/_settings.toggle.scss +14 -0
- package/src/themes/boomdevs/01-settings/_settings.tooltip.scss +13 -0
- package/src/themes/boomdevs/01-settings/_settings.typography.scss +58 -0
- package/src/themes/boomdevs/01-settings/_settings.video-player.scss +12 -0
- package/src/themes/boomdevs/02-tools/_index.scss +7 -0
- package/src/themes/boomdevs/03-generic/_index.scss +7 -0
- package/src/themes/boomdevs/04-elements/_index.scss +7 -0
- package/src/themes/boomdevs/05-objects/_index.scss +7 -0
- package/src/themes/boomdevs/06-components/_components.button.scss +11 -0
- package/src/themes/boomdevs/06-components/_index.scss +11 -0
- package/src/themes/boomdevs/99-utilities/_index.scss +7 -0
- package/src/themes/boomdevs/index.scss +26 -0
- package/src/themes/esrar/01-settings/_index.scss +15 -0
- package/src/themes/esrar/01-settings/_settings.colors.scss +91 -0
- package/src/themes/esrar/02-tools/_index.scss +8 -0
- package/src/themes/esrar/02-tools/_tools.animations.scss +342 -0
- package/src/themes/esrar/06-components/_components.accordion.scss +49 -0
- package/src/themes/esrar/06-components/_components.avatar-group.scss +14 -0
- package/src/themes/esrar/06-components/_components.avatar.scss +61 -0
- package/src/themes/esrar/06-components/_components.badge.scss +117 -0
- package/src/themes/esrar/06-components/_components.breadcrumb.scss +65 -0
- package/src/themes/esrar/06-components/_components.btn-group.scss +19 -0
- package/src/themes/esrar/06-components/_components.button.scss +224 -0
- package/src/themes/esrar/06-components/_components.callout.scss +51 -0
- package/src/themes/esrar/06-components/_components.card.scss +134 -0
- package/src/themes/esrar/06-components/_components.chart.scss +24 -0
- package/src/themes/esrar/06-components/_components.checkbox-group.scss +26 -0
- package/src/themes/esrar/06-components/_components.checkbox.scss +71 -0
- package/src/themes/esrar/06-components/_components.color-mode-toggle.scss +29 -0
- package/src/themes/esrar/06-components/_components.countdown.scss +67 -0
- package/src/themes/esrar/06-components/_components.data-table.scss +22 -0
- package/src/themes/esrar/06-components/_components.datepicker.scss +20 -0
- package/src/themes/esrar/06-components/_components.dropdown.scss +272 -0
- package/src/themes/esrar/06-components/_components.edge-panel.scss +10 -0
- package/src/themes/esrar/06-components/_components.form-group.scss +15 -0
- package/src/themes/esrar/06-components/_components.form.scss +66 -0
- package/src/themes/esrar/06-components/_components.hero.scss +251 -0
- package/src/themes/esrar/06-components/_components.icon.scss +33 -0
- package/src/themes/esrar/06-components/_components.image-gallery.scss +29 -0
- package/src/themes/esrar/06-components/_components.input.scss +91 -0
- package/src/themes/esrar/06-components/_components.list-group.scss +26 -0
- package/src/themes/esrar/06-components/_components.modal.scss +148 -0
- package/src/themes/esrar/06-components/_components.notification.scss +80 -0
- package/src/themes/esrar/06-components/_components.pagination.scss +84 -0
- package/src/themes/esrar/06-components/_components.popover.scss +10 -0
- package/src/themes/esrar/06-components/_components.progress.scss +64 -0
- package/src/themes/esrar/06-components/_components.rating.scss +26 -0
- package/src/themes/esrar/06-components/_components.skeleton.scss +15 -0
- package/src/themes/esrar/06-components/_components.slider.scss +90 -0
- package/src/themes/esrar/06-components/_components.spinner.scss +71 -0
- package/src/themes/esrar/06-components/_components.steps.scss +76 -0
- package/src/themes/esrar/06-components/_components.tab.scss +58 -0
- package/src/themes/esrar/06-components/_components.tag.scss +21 -0
- package/src/themes/esrar/06-components/_components.timeline.scss +19 -0
- package/src/themes/esrar/06-components/_components.toast.scss +91 -0
- package/src/themes/esrar/06-components/_components.toggle.scss +74 -0
- package/src/themes/esrar/06-components/_components.tooltip.scss +45 -0
- package/src/themes/esrar/06-components/_components.upload.scss +102 -0
- package/src/themes/esrar/06-components/_index.scss +42 -0
- package/src/themes/esrar/index.scss +30 -0
- package/src/themes/flashtrade/01-settings/_index.scss +19 -0
- package/src/themes/flashtrade/01-settings/_settings.animations.scss +11 -0
- package/src/themes/flashtrade/01-settings/_settings.background.scss +9 -0
- package/src/themes/flashtrade/01-settings/_settings.colors.scss +79 -0
- package/src/themes/flashtrade/01-settings/_settings.config.scss +16 -0
- package/src/themes/flashtrade/01-settings/_settings.typography.scss +35 -0
- package/src/themes/flashtrade/02-tools/_index.scss +8 -0
- package/src/themes/flashtrade/03-generic/_index.scss +8 -0
- package/src/themes/flashtrade/04-elements/_index.scss +12 -0
- package/src/themes/flashtrade/05-objects/_index.scss +8 -0
- package/src/themes/flashtrade/06-components/_components.badge.scss +156 -0
- package/src/themes/flashtrade/06-components/_components.button.scss +135 -0
- package/src/themes/flashtrade/06-components/_components.card.scss +214 -0
- package/src/themes/flashtrade/06-components/_components.navbar.scss +227 -0
- package/src/themes/flashtrade/06-components/_index.scss +13 -0
- package/src/themes/flashtrade/99-utilities/_index.scss +9 -0
- package/src/themes/flashtrade/99-utilities/_utilities.trading.scss +187 -0
- package/src/themes/flashtrade/README.md +386 -0
- package/src/themes/flashtrade/demo.html +272 -0
- package/src/themes/flashtrade/index.scss +36 -0
- package/src/themes/mashroom/01-settings/_index.scss +69 -0
- package/src/themes/mashroom/01-settings/_settings.accordion.scss +32 -0
- package/src/themes/mashroom/01-settings/_settings.animations.scss +26 -0
- package/src/themes/mashroom/01-settings/_settings.avatar-group.scss +22 -0
- package/src/themes/mashroom/01-settings/_settings.avatar.scss +57 -0
- package/src/themes/mashroom/01-settings/_settings.badge.scss +19 -0
- package/src/themes/mashroom/01-settings/_settings.border-radius.scss +24 -0
- package/src/themes/mashroom/01-settings/_settings.border.scss +14 -0
- package/src/themes/mashroom/01-settings/_settings.box-shadow.scss +40 -0
- package/src/themes/mashroom/01-settings/_settings.breadcrumb.scss +0 -0
- package/src/themes/mashroom/01-settings/_settings.breakpoints.scss +17 -0
- package/src/themes/mashroom/01-settings/_settings.btn-group.scss +5 -0
- package/src/themes/mashroom/01-settings/_settings.button.scss +50 -0
- package/src/themes/mashroom/01-settings/_settings.callout.scss +81 -0
- package/src/themes/mashroom/01-settings/_settings.card.scss +52 -0
- package/src/themes/mashroom/01-settings/_settings.checkbox-group.scss +5 -0
- package/src/themes/mashroom/01-settings/_settings.checkbox.scss +23 -0
- package/src/themes/mashroom/01-settings/_settings.color-mode.scss +7 -0
- package/src/themes/mashroom/01-settings/_settings.colors.scss +180 -0
- package/src/themes/mashroom/01-settings/_settings.config.scss +4 -0
- package/src/themes/mashroom/01-settings/_settings.countdown.scss +20 -0
- package/src/themes/mashroom/01-settings/_settings.data-table.scss +56 -0
- package/src/themes/mashroom/01-settings/_settings.datepicker.scss +45 -0
- package/src/themes/mashroom/01-settings/_settings.design-tokens.scss +3 -0
- package/src/themes/mashroom/01-settings/_settings.dropdown.scss +45 -0
- package/src/themes/mashroom/01-settings/_settings.edge-panel.scss +24 -0
- package/src/themes/mashroom/01-settings/_settings.fonts.scss +8 -0
- package/src/themes/mashroom/01-settings/_settings.form-group.scss +14 -0
- package/src/themes/mashroom/01-settings/_settings.form.scss +6 -0
- package/src/themes/mashroom/01-settings/_settings.grid.scss +23 -0
- package/src/themes/mashroom/01-settings/_settings.hero.scss +41 -0
- package/src/themes/mashroom/01-settings/_settings.input.scss +51 -0
- package/src/themes/mashroom/01-settings/_settings.link.scss +13 -0
- package/src/themes/mashroom/01-settings/_settings.list-group.scss +16 -0
- package/src/themes/mashroom/01-settings/_settings.list.scss +13 -0
- package/src/themes/mashroom/01-settings/_settings.masonry-grid.scss +23 -0
- package/src/themes/mashroom/01-settings/_settings.menu.scss +50 -0
- package/src/themes/mashroom/01-settings/_settings.messages.scss +98 -0
- package/src/themes/mashroom/01-settings/_settings.modal.scss +41 -0
- package/src/themes/mashroom/01-settings/_settings.nav.scss +20 -0
- package/src/themes/mashroom/01-settings/_settings.navbar.scss +54 -0
- package/src/themes/mashroom/01-settings/_settings.pagination.scss +30 -0
- package/src/themes/mashroom/01-settings/_settings.photoviewer.scss +45 -0
- package/src/themes/mashroom/01-settings/_settings.popover.scss +20 -0
- package/src/themes/mashroom/01-settings/_settings.position.scss +9 -0
- package/src/themes/mashroom/01-settings/_settings.progress.scss +17 -0
- package/src/themes/mashroom/01-settings/_settings.rating.scss +11 -0
- package/src/themes/mashroom/01-settings/_settings.river.scss +50 -0
- package/src/themes/mashroom/01-settings/_settings.sectionintro.scss +31 -0
- package/src/themes/mashroom/01-settings/_settings.select.scss +47 -0
- package/src/themes/mashroom/01-settings/_settings.side-menu.scss +79 -0
- package/src/themes/mashroom/01-settings/_settings.skeleton.scss +24 -0
- package/src/themes/mashroom/01-settings/_settings.spacing.scss +66 -0
- package/src/themes/mashroom/01-settings/_settings.spinner.scss +34 -0
- package/src/themes/mashroom/01-settings/_settings.steps.scss +33 -0
- package/src/themes/mashroom/01-settings/_settings.tabs.scss +33 -0
- package/src/themes/mashroom/01-settings/_settings.testimonials.scss +24 -0
- package/src/themes/mashroom/01-settings/_settings.todo.scss +52 -0
- package/src/themes/mashroom/01-settings/_settings.toggle.scss +49 -0
- package/src/themes/mashroom/01-settings/_settings.tooltip.scss +20 -0
- package/src/themes/mashroom/01-settings/_settings.typography.scss +95 -0
- package/src/themes/mashroom/01-settings/_settings.upload.scss +96 -0
- package/src/themes/mashroom/01-settings/_settings.z-layers.scss +19 -0
- package/src/themes/mashroom/02-tools/_index.scss +8 -0
- package/src/themes/mashroom/02-tools/_tools.psychedelic-gradients.scss +78 -0
- package/src/themes/mashroom/02-tools/_tools.trippy-effects.scss +114 -0
- package/src/themes/mashroom/03-generic/_index.scss +6 -0
- package/src/themes/mashroom/04-elements/_index.scss +6 -0
- package/src/themes/mashroom/05-objects/_index.scss +6 -0
- package/src/themes/mashroom/06-components/_components.accordion.scss +187 -0
- package/src/themes/mashroom/06-components/_components.avatar-group.scss +276 -0
- package/src/themes/mashroom/06-components/_components.avatar.scss +114 -0
- package/src/themes/mashroom/06-components/_components.badge.scss +152 -0
- package/src/themes/mashroom/06-components/_components.breadcrumb.scss +162 -0
- package/src/themes/mashroom/06-components/_components.btn-group.scss +404 -0
- package/src/themes/mashroom/06-components/_components.button.scss +160 -0
- package/src/themes/mashroom/06-components/_components.callout.scss +140 -0
- package/src/themes/mashroom/06-components/_components.card.scss +225 -0
- package/src/themes/mashroom/06-components/_components.checkbox.scss +186 -0
- package/src/themes/mashroom/06-components/_components.color-mode-toggle.scss +308 -0
- package/src/themes/mashroom/06-components/_components.countdown.scss +402 -0
- package/src/themes/mashroom/06-components/_components.data-table.scss +354 -0
- package/src/themes/mashroom/06-components/_components.datepicker.scss +349 -0
- package/src/themes/mashroom/06-components/_components.dropdown.scss +334 -0
- package/src/themes/mashroom/06-components/_components.edge-panel.scss +413 -0
- package/src/themes/mashroom/06-components/_components.form-group.scss +433 -0
- package/src/themes/mashroom/06-components/_components.form.scss +358 -0
- package/src/themes/mashroom/06-components/_components.hero.scss +151 -0
- package/src/themes/mashroom/06-components/_components.input.scss +147 -0
- package/src/themes/mashroom/06-components/_components.list-group.scss +456 -0
- package/src/themes/mashroom/06-components/_components.list.scss +145 -0
- package/src/themes/mashroom/06-components/_components.menu.scss +497 -0
- package/src/themes/mashroom/06-components/_components.messages.scss +277 -0
- package/src/themes/mashroom/06-components/_components.modal.scss +264 -0
- package/src/themes/mashroom/06-components/_components.nav.scss +181 -0
- package/src/themes/mashroom/06-components/_components.navbar.scss +538 -0
- package/src/themes/mashroom/06-components/_components.pagination.scss +400 -0
- package/src/themes/mashroom/06-components/_components.photoviewer.scss +498 -0
- package/src/themes/mashroom/06-components/_components.popover.scss +383 -0
- package/src/themes/mashroom/06-components/_components.product-review.scss +408 -0
- package/src/themes/mashroom/06-components/_components.progress.scss +249 -0
- package/src/themes/mashroom/06-components/_components.rating.scss +300 -0
- package/src/themes/mashroom/06-components/_components.river.scss +570 -0
- package/src/themes/mashroom/06-components/_components.sectionintro.scss +546 -0
- package/src/themes/mashroom/06-components/_components.select.scss +455 -0
- package/src/themes/mashroom/06-components/_components.side-menu.scss +635 -0
- package/src/themes/mashroom/06-components/_components.skeleton.scss +447 -0
- package/src/themes/mashroom/06-components/_components.slider.scss +414 -0
- package/src/themes/mashroom/06-components/_components.spinner.scss +198 -0
- package/src/themes/mashroom/06-components/_components.steps.scss +350 -0
- package/src/themes/mashroom/06-components/_components.tabs.scss +269 -0
- package/src/themes/mashroom/06-components/_components.testimonials.scss +561 -0
- package/src/themes/mashroom/06-components/_components.toggle.scss +231 -0
- package/src/themes/mashroom/06-components/_components.tooltip.scss +167 -0
- package/src/themes/mashroom/06-components/_components.upload.scss +537 -0
- package/src/themes/mashroom/06-components/_components.video-player.scss +560 -0
- package/src/themes/mashroom/06-components/_index.scss +55 -0
- package/src/themes/mashroom/99-utilities/_index.scss +6 -0
- package/src/themes/mashroom/index.scss +26 -0
- package/src/themes/shaj-default/01-settings/_index.scss +69 -0
- package/src/themes/shaj-default/01-settings/_settings.accordion.scss +38 -0
- package/src/themes/shaj-default/01-settings/_settings.animations.scss +32 -0
- package/src/themes/shaj-default/01-settings/_settings.avatar-group.scss +28 -0
- package/src/themes/shaj-default/01-settings/_settings.avatar.scss +63 -0
- package/src/themes/shaj-default/01-settings/_settings.badge.scss +25 -0
- package/src/themes/shaj-default/01-settings/_settings.border-radius.scss +24 -0
- package/src/themes/shaj-default/01-settings/_settings.border.scss +20 -0
- package/src/themes/shaj-default/01-settings/_settings.box-shadow.scss +46 -0
- package/src/themes/shaj-default/01-settings/_settings.breadcrumb.scss +0 -0
- package/src/themes/shaj-default/01-settings/_settings.breakpoints.scss +23 -0
- package/src/themes/shaj-default/01-settings/_settings.btn-group.scss +11 -0
- package/src/themes/shaj-default/01-settings/_settings.button.scss +56 -0
- package/src/themes/shaj-default/01-settings/_settings.callout.scss +87 -0
- package/src/themes/shaj-default/01-settings/_settings.card.scss +52 -0
- package/src/themes/shaj-default/01-settings/_settings.checkbox-group.scss +11 -0
- package/src/themes/shaj-default/01-settings/_settings.checkbox.scss +29 -0
- package/src/themes/shaj-default/01-settings/_settings.color-mode.scss +13 -0
- package/src/themes/shaj-default/01-settings/_settings.colors.scss +91 -0
- package/src/themes/shaj-default/01-settings/_settings.config.scss +4 -0
- package/src/themes/shaj-default/01-settings/_settings.countdown.scss +26 -0
- package/src/themes/shaj-default/01-settings/_settings.data-table.scss +62 -0
- package/src/themes/shaj-default/01-settings/_settings.datepicker.scss +51 -0
- package/src/themes/shaj-default/01-settings/_settings.design-tokens.scss +9 -0
- package/src/themes/shaj-default/01-settings/_settings.dropdown.scss +51 -0
- package/src/themes/shaj-default/01-settings/_settings.edge-panel.scss +30 -0
- package/src/themes/shaj-default/01-settings/_settings.fonts.scss +13 -0
- package/src/themes/shaj-default/01-settings/_settings.form-group.scss +20 -0
- package/src/themes/shaj-default/01-settings/_settings.form.scss +12 -0
- package/src/themes/shaj-default/01-settings/_settings.grid.scss +29 -0
- package/src/themes/shaj-default/01-settings/_settings.hero.scss +47 -0
- package/src/themes/shaj-default/01-settings/_settings.input.scss +57 -0
- package/src/themes/shaj-default/01-settings/_settings.link.scss +19 -0
- package/src/themes/shaj-default/01-settings/_settings.list-group.scss +22 -0
- package/src/themes/shaj-default/01-settings/_settings.list.scss +19 -0
- package/src/themes/shaj-default/01-settings/_settings.masonry-grid.scss +29 -0
- package/src/themes/shaj-default/01-settings/_settings.menu.scss +56 -0
- package/src/themes/shaj-default/01-settings/_settings.messages.scss +104 -0
- package/src/themes/shaj-default/01-settings/_settings.modal.scss +47 -0
- package/src/themes/shaj-default/01-settings/_settings.nav.scss +26 -0
- package/src/themes/shaj-default/01-settings/_settings.navbar.scss +60 -0
- package/src/themes/shaj-default/01-settings/_settings.pagination.scss +36 -0
- package/src/themes/shaj-default/01-settings/_settings.photoviewer.scss +51 -0
- package/src/themes/shaj-default/01-settings/_settings.popover.scss +26 -0
- package/src/themes/shaj-default/01-settings/_settings.position.scss +15 -0
- package/src/themes/shaj-default/01-settings/_settings.progress.scss +23 -0
- package/src/themes/shaj-default/01-settings/_settings.rating.scss +17 -0
- package/src/themes/shaj-default/01-settings/_settings.river.scss +56 -0
- package/src/themes/shaj-default/01-settings/_settings.sectionintro.scss +37 -0
- package/src/themes/shaj-default/01-settings/_settings.select.scss +53 -0
- package/src/themes/shaj-default/01-settings/_settings.side-menu.scss +85 -0
- package/src/themes/shaj-default/01-settings/_settings.skeleton.scss +30 -0
- package/src/themes/shaj-default/01-settings/_settings.spacing.scss +72 -0
- package/src/themes/shaj-default/01-settings/_settings.spinner.scss +24 -0
- package/src/themes/shaj-default/01-settings/_settings.steps.scss +39 -0
- package/src/themes/shaj-default/01-settings/_settings.tabs.scss +39 -0
- package/src/themes/shaj-default/01-settings/_settings.testimonials.scss +30 -0
- package/src/themes/shaj-default/01-settings/_settings.todo.scss +58 -0
- package/src/themes/shaj-default/01-settings/_settings.toggle.scss +55 -0
- package/src/themes/shaj-default/01-settings/_settings.tooltip.scss +26 -0
- package/src/themes/shaj-default/01-settings/_settings.typography.scss +101 -0
- package/src/themes/shaj-default/01-settings/_settings.upload.scss +102 -0
- package/src/themes/shaj-default/01-settings/_settings.z-layers.scss +25 -0
- package/src/themes/shaj-default/02-tools/_index.scss +0 -0
- package/src/themes/shaj-default/03-generic/_generic.root.scss +0 -0
- package/src/themes/shaj-default/03-generic/_index.scss +2 -0
- package/src/themes/shaj-default/04-elements/_index.scss +0 -0
- package/src/themes/shaj-default/05-objects/_index.scss +0 -0
- package/src/themes/shaj-default/06-components/_components.button.scss +55 -0
- package/src/themes/shaj-default/06-components/_components.card.scss +57 -0
- package/src/themes/shaj-default/06-components/_components.input.scss +58 -0
- package/src/themes/shaj-default/06-components/_components.navbar.scss +99 -0
- package/src/themes/shaj-default/06-components/_components.tooltip.scss +0 -0
- package/src/themes/shaj-default/06-components/_index.scss +13 -0
- package/src/themes/shaj-default/99-utilities/_index.scss +0 -0
- package/src/themes/shaj-default/index.scss +25 -0
- package/src/themes/themes.config.js +219 -0
- package/theme.config.ts +360 -0
- package/src/lib/theme/ThemeManager.integration.test.ts +0 -124
- package/src/lib/theme/ThemeManager.stories.tsx +0 -472
- package/src/lib/theme/ThemeManager.test.ts +0 -190
- package/src/lib/theme/ThemeManager.ts +0 -645
- package/src/lib/theme/ThemeProvider.tsx +0 -377
- package/src/lib/theme/createTheme.test.ts +0 -475
- package/src/lib/theme/useTheme.test.tsx +0 -67
- package/src/lib/theme/useTheme.ts +0 -64
- package/src/lib/theme/utils.test.ts +0 -140
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
# Atomix Design System Themes
|
|
2
|
+
|
|
3
|
+
# Atomix Design System Themes
|
|
4
|
+
|
|
5
|
+
This guide documents how to build SCSS-based themes for the Atomix Design System, using the existing `shaj-default` theme as the reference implementation. It covers the architecture, creation process, best practices, testing and validation, and maintenance guidelines. Real code excerpts are taken from `./src/themes/shaj-default` to ensure your new themes align with the established patterns.
|
|
6
|
+
|
|
7
|
+
## Theme Architecture
|
|
8
|
+
|
|
9
|
+
- Overview
|
|
10
|
+
- Themes follow a layered SCSS architecture mirroring Atomix core styles: `01-settings`, `02-tools`, `03-generic`, `04-elements`, `05-objects`, `06-components`, `99-utilities`.
|
|
11
|
+
- Each theme selectively overrides base tokens, utilities, and component styling while reusing the majority of Atomix core styles.
|
|
12
|
+
|
|
13
|
+
- File Structure (from `shaj-default`)
|
|
14
|
+
- `index.scss` — Entrypoint that wires up local overrides and Atomix base layers.
|
|
15
|
+
- `01-settings/` — Theme tokens and configuration (colors, spacing, breakpoints, fonts, typography, component settings).
|
|
16
|
+
- `02-tools/` — Optional theme-specific tools; can be empty when only using Atomix tools.
|
|
17
|
+
- `03-generic/` — Root-level theme overrides (often minimal).
|
|
18
|
+
- `04-elements/`, `05-objects/` — Rarely overridden; keep consistent unless theme requires element/object-level changes.
|
|
19
|
+
- `06-components/` — Component overrides specific to the theme’s visual style.
|
|
20
|
+
- `99-utilities/` — Utility overrides or additions.
|
|
21
|
+
|
|
22
|
+
- Architecture Diagram
|
|
23
|
+
```
|
|
24
|
+
Theme Entrypoint (index.scss)
|
|
25
|
+
├─ 01-settings (forward) → overrides base tokens
|
|
26
|
+
├─ 02-tools (use/forward) → theme tools (optional)
|
|
27
|
+
├─ 03-generic (forward) → root/base overrides
|
|
28
|
+
├─ 04-elements (forward) → element-level overrides (rare)
|
|
29
|
+
├─ 05-objects (forward) → layout/object overrides (rare)
|
|
30
|
+
├─ 06-components(forward) → component styling overrides
|
|
31
|
+
└─ 99-utilities(forward) → utility overrides (optional)
|
|
32
|
+
|
|
33
|
+
Atomix Base Styles (../../styles)
|
|
34
|
+
├─ 01-settings → default tokens
|
|
35
|
+
├─ 02-tools → mixins & functions
|
|
36
|
+
├─ 03-generic → resets and root
|
|
37
|
+
├─ 04-elements → HTML elements
|
|
38
|
+
├─ 05-objects → layout patterns
|
|
39
|
+
├─ 06-components → components
|
|
40
|
+
└─ 99-utilities → utility classes
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
- Entrypoint Example (from `shaj-default/index.scss`)
|
|
44
|
+
```scss
|
|
45
|
+
// Import and forward local theme settings first (these override base settings)
|
|
46
|
+
@use '01-settings/index' as *;
|
|
47
|
+
|
|
48
|
+
// Import and forward base styles with local overrides
|
|
49
|
+
@use '02-tools/index' as *;
|
|
50
|
+
@use '../../styles/02-tools/index' as tools;
|
|
51
|
+
|
|
52
|
+
@use '03-generic/index' as *;
|
|
53
|
+
@use '../../styles/03-generic/index' as generic;
|
|
54
|
+
|
|
55
|
+
@use '04-elements/index' as *;
|
|
56
|
+
@use '../../styles/04-elements/index' as elements;
|
|
57
|
+
|
|
58
|
+
@use '05-objects/index' as *;
|
|
59
|
+
@use '../../styles/05-objects/index' as objects;
|
|
60
|
+
|
|
61
|
+
@use '06-components/index' as *;
|
|
62
|
+
@use '../../styles/06-components/index';
|
|
63
|
+
|
|
64
|
+
@use '99-utilities/index' as *;
|
|
65
|
+
@use '../../styles/99-utilities/index' as utilities;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
- Core SCSS Files and Purpose
|
|
69
|
+
- `01-settings/_settings.config.scss`: global theme config, including `$prefix` to namespace CSS variables.
|
|
70
|
+
```scss
|
|
71
|
+
// These variables must act as constants, hence the uppercase
|
|
72
|
+
$ENV: 'dev';
|
|
73
|
+
$prefix: atomix- !default; // used as var(--#{$prefix}token)
|
|
74
|
+
```
|
|
75
|
+
- `01-settings/_settings.colors.scss`: overrides Atomix color tokens by providing a 1–10 scale for each palette.
|
|
76
|
+
```scss
|
|
77
|
+
@use '../../../styles/01-settings/settings.colors' with (
|
|
78
|
+
$primary-6: #0ea5e9,
|
|
79
|
+
$primary-7: #0284c7,
|
|
80
|
+
$primary-8: #0369a1,
|
|
81
|
+
$gray-1: #f9fafb,
|
|
82
|
+
$gray-10: #111827,
|
|
83
|
+
// ... full 1–10 scales per color
|
|
84
|
+
);
|
|
85
|
+
```
|
|
86
|
+
- `01-settings/_settings.typography.scss`: font families, weights, sizes, line-heights, letter spacing.
|
|
87
|
+
```scss
|
|
88
|
+
@use '../../../styles/01-settings/settings.typography' with (
|
|
89
|
+
$font-family-base: (system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif),
|
|
90
|
+
$font-weight-normal: 400,
|
|
91
|
+
$h1-font-size: 2.75rem,
|
|
92
|
+
$line-height-base: 1.6,
|
|
93
|
+
$headings-font-weight: 600,
|
|
94
|
+
// ...
|
|
95
|
+
);
|
|
96
|
+
```
|
|
97
|
+
- `01-settings/_settings.spacing.scss`: spacing scale tied to `px` values.
|
|
98
|
+
```scss
|
|
99
|
+
$spacer: 16px !default;
|
|
100
|
+
$spacing-sizes: (
|
|
101
|
+
0: 0px, 1: 4px, 2: 8px, 3: 12px,
|
|
102
|
+
4: 16px, 5: 20px, 6: 24px, 8: 32px,
|
|
103
|
+
10: 40px, 12: 48px, 16: 64px, 20: 80px,
|
|
104
|
+
// ...
|
|
105
|
+
) !default;
|
|
106
|
+
```
|
|
107
|
+
- `01-settings/_settings.breakpoints.scss`: breakpoint map and explicit variables.
|
|
108
|
+
```scss
|
|
109
|
+
$breakpoints: (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px) !default;
|
|
110
|
+
$breakpoint-sm: 576px !default; // also provided individually
|
|
111
|
+
```
|
|
112
|
+
- `01-settings/_settings.fonts.scss`: font imports and loading strategy.
|
|
113
|
+
```scss
|
|
114
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
|
|
115
|
+
$font-display: swap !default;
|
|
116
|
+
```
|
|
117
|
+
- `06-components/*`: component-specific overrides using theme CSS variables.
|
|
118
|
+
```scss
|
|
119
|
+
// Button example
|
|
120
|
+
@use '../01-settings/settings.config' as *;
|
|
121
|
+
.c-btn.c-btn-primary {
|
|
122
|
+
background: linear-gradient(135deg, var(--#{$prefix}primary-6), var(--#{$prefix}primary-7));
|
|
123
|
+
border-color: var(--#{$prefix}primary-6);
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- Variable Naming Conventions and Organization
|
|
128
|
+
- SCSS variables: lowercase with hyphenation (e.g., `$primary-6`, `$line-height-base`).
|
|
129
|
+
- Constant-like config: uppercase for special cases (e.g., `$ENV`).
|
|
130
|
+
- CSS variables: namespaced with `$prefix`, used as `var(--#{$prefix}token-name)` throughout components to enable runtime theming.
|
|
131
|
+
- Color scales: 1–10 per palette for predictable gradations.
|
|
132
|
+
|
|
133
|
+
- Mixins and Function Implementations
|
|
134
|
+
- Atomix provides color utilities and general tools you can reuse; theme overrides are optional.
|
|
135
|
+
- Color utilities (from base tools):
|
|
136
|
+
```scss
|
|
137
|
+
// _tools.color-functions.scss
|
|
138
|
+
@function tint-color($color, $weight) { /* mix with white */ }
|
|
139
|
+
@function shade-color($color, $weight) { /* mix with black */ }
|
|
140
|
+
@function shift-color($color, $weight) { /* tint if >0, else shade */ }
|
|
141
|
+
@function to-rgb($color) { /* returns "r, g, b" or passthrough */ }
|
|
142
|
+
```
|
|
143
|
+
- Media, spacing, and utility tools are exposed via `@use '../../styles/02-tools/index' as tools;` and can be applied in components.
|
|
144
|
+
|
|
145
|
+
## Theme Creation Process
|
|
146
|
+
|
|
147
|
+
- Step-by-Step Guide
|
|
148
|
+
1. Create a new theme folder: `./src/themes/<your-theme>/`.
|
|
149
|
+
2. Add `index.scss` that forwards local settings first, then uses Atomix base layers:
|
|
150
|
+
```scss
|
|
151
|
+
@use '01-settings/index' as *;
|
|
152
|
+
@use '02-tools/index' as *;
|
|
153
|
+
@use '../../styles/02-tools/index' as tools;
|
|
154
|
+
@use '03-generic/index' as *;
|
|
155
|
+
@use '../../styles/03-generic/index' as generic;
|
|
156
|
+
@use '04-elements/index' as *;
|
|
157
|
+
@use '../../styles/04-elements/index' as elements;
|
|
158
|
+
@use '05-objects/index' as *;
|
|
159
|
+
@use '../../styles/05-objects/index' as objects;
|
|
160
|
+
@use '06-components/index' as *;
|
|
161
|
+
@use '../../styles/06-components/index';
|
|
162
|
+
@use '99-utilities/index' as *;
|
|
163
|
+
@use '../../styles/99-utilities/index' as utilities;
|
|
164
|
+
```
|
|
165
|
+
3. Implement `01-settings/_index.scss` and forward needed settings files. Start with colors and config, then add typography, spacing, breakpoints, and any component settings.
|
|
166
|
+
4. Optionally add `02-tools` overrides (often empty if relying on Atomix tools).
|
|
167
|
+
5. Add component overrides under `06-components` as needed to express your unique design.
|
|
168
|
+
6. Keep `03-generic`, `04-elements`, `05-objects`, and `99-utilities` minimal unless your theme needs specific overrides at those layers.
|
|
169
|
+
|
|
170
|
+
- Required Base Variables and Defaults
|
|
171
|
+
- `$prefix`: CSS variable namespace (default: `atomix-`).
|
|
172
|
+
- Colors: provide complete 1–10 scales for `primary`, `red`, `green`, `yellow`, `blue`, and `gray`. Use `shaj-default` values as a starting point.
|
|
173
|
+
- Typography: families, weights (300–900), base and heading sizes, line heights, letter spacing.
|
|
174
|
+
- Spacing: maintain the Atomix scale (e.g., `$spacer: 16px` and `$spacing-sizes` map) for consistency.
|
|
175
|
+
- Breakpoints: keep standard responsive sizes (xs–xxl) to ensure layout fidelity.
|
|
176
|
+
|
|
177
|
+
- Color Palette Definition Methodology
|
|
178
|
+
- Define each color scale from 1 (lightest) to 10 (darkest) with accessible contrast.
|
|
179
|
+
- Prefer balanced hues aligned with UI affordances: primary for action, gray for surfaces, red/green for state.
|
|
180
|
+
- Use CSS variables in components: `var(--#{$prefix}primary-6)` for runtime theme flexibility.
|
|
181
|
+
|
|
182
|
+
- Typography System Implementation
|
|
183
|
+
- Use performant system fonts by default (as in `shaj-default`).
|
|
184
|
+
- Scale headings more pronounced than body text; ensure `line-height-base` ≥ 1.5 for readability.
|
|
185
|
+
- Adjust letter spacing for large headings to improve optical balance.
|
|
186
|
+
|
|
187
|
+
- Spacing and Layout Rules
|
|
188
|
+
- Adopt the Atomix spacing map to guarantee consistent padding/margins across components.
|
|
189
|
+
- Leverage base grid and breakpoint tools from `../../styles/02-tools` for responsive behaviors.
|
|
190
|
+
|
|
191
|
+
- Component-Specific Styling Patterns
|
|
192
|
+
- Buttons: use gradients or solid fills with hover transitions; reference `primary-*` variables.
|
|
193
|
+
```scss
|
|
194
|
+
.c-btn.c-btn-primary { background: linear-gradient(135deg, var(--#{$prefix}primary-6), var(--#{$prefix}primary-7)); }
|
|
195
|
+
```
|
|
196
|
+
- Inputs: emphasize focus states with subtle shadows and color borders; include valid/invalid states.
|
|
197
|
+
```scss
|
|
198
|
+
.c-form-control:focus { border-color: var(--#{$prefix}primary-6); box-shadow: 0 0 0 3px rgba(14,165,233,0.1); }
|
|
199
|
+
```
|
|
200
|
+
- Cards: use surface and border tokens with hover elevation.
|
|
201
|
+
```scss
|
|
202
|
+
.c-card { border: 1px solid var(--#{$prefix}gray-2); &:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.12); } }
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Best Practices
|
|
206
|
+
|
|
207
|
+
- SCSS Organization Strategies
|
|
208
|
+
- Mirror Atomix’s layered architecture; keep overrides local to the appropriate layer.
|
|
209
|
+
- Forward settings via `01-settings/_index.scss` using `@forward` to keep entry imports clean.
|
|
210
|
+
- Minimize changes in `03-generic`, `04-elements`, and `05-objects` unless necessary.
|
|
211
|
+
|
|
212
|
+
- Variable Inheritance Patterns
|
|
213
|
+
- Override base tokens using `@use '...settings.*' with (...)` to keep diffs scoped.
|
|
214
|
+
- Namespace CSS variables via `$prefix`, and access them in components using `var(--#{$prefix}...)`.
|
|
215
|
+
- Prefer CSS variables in component styles to allow runtime theming.
|
|
216
|
+
|
|
217
|
+
- Theme Extension Techniques
|
|
218
|
+
- Start from `shaj-default` and incrementally override only what you need.
|
|
219
|
+
- Add component overrides under `06-components` to layer theme-specific visuals without diverging from core semantics.
|
|
220
|
+
- Reuse Atomix tools (`../../styles/02-tools`) for consistency and performance.
|
|
221
|
+
|
|
222
|
+
- Performance Optimization for Theme SCSS
|
|
223
|
+
- Avoid deep selector nesting; keep specificity low.
|
|
224
|
+
- Use transition and shadow values sparingly to reduce paint cost.
|
|
225
|
+
- Share tokens via CSS variables rather than recomputing values in many places.
|
|
226
|
+
- Build settings can compress output; see `themes.config.js` for build formats and Sass options.
|
|
227
|
+
|
|
228
|
+
- Browser Compatibility Considerations
|
|
229
|
+
- Respect the project `.browserslistrc` for autoprefixing and compatibility.
|
|
230
|
+
- Provide sensible fallbacks when using advanced features; CSS vars are widely supported but test in IE11-like environments if necessary (polyfills typically out of scope).
|
|
231
|
+
|
|
232
|
+
## Testing and Validation
|
|
233
|
+
|
|
234
|
+
- Visual Regression Testing Procedures
|
|
235
|
+
- Use Storybook stories for themed components; compare snapshots across theme changes.
|
|
236
|
+
- Consider integrating Chromatic or a screenshot diff tool to catch regressions.
|
|
237
|
+
|
|
238
|
+
- Theme Consistency Checks
|
|
239
|
+
- Verify all components read tokens from CSS variables (e.g., `var(--#{$prefix}*)`).
|
|
240
|
+
- Ensure spacing, typography, and color usage comply with your theme’s `01-settings`.
|
|
241
|
+
- Audit hover/focus states for accessibility and consistency.
|
|
242
|
+
|
|
243
|
+
- Cross-Browser Testing Requirements
|
|
244
|
+
- Test Chrome, Safari, Firefox, and Edge at minimum.
|
|
245
|
+
- Validate responsive behavior at breakpoints (`sm`, `md`, `lg`, `xl`, `xxl`).
|
|
246
|
+
|
|
247
|
+
- Performance Impact Measurement
|
|
248
|
+
- Measure CSS bundle size per theme; prefer compressed outputs for production.
|
|
249
|
+
- Use Lighthouse or performance tooling to evaluate paint, layout shifts, and interaction latency.
|
|
250
|
+
|
|
251
|
+
## Maintenance Guidelines
|
|
252
|
+
|
|
253
|
+
- Theme Versioning Strategy
|
|
254
|
+
- Track theme versions in `themes.config.js` metadata and follow SemVer (MAJOR.MINOR.PATCH).
|
|
255
|
+
- Bump versions when changing tokens or component visuals in backward-incompatible ways.
|
|
256
|
+
|
|
257
|
+
- Update and Deprecation Policies
|
|
258
|
+
- Document breaking changes in `CHANGELOG.md` and migration notes.
|
|
259
|
+
- Deprecate tokens or patterns gradually; provide an alias or fallback period.
|
|
260
|
+
|
|
261
|
+
- Documentation Standards for New Themes
|
|
262
|
+
- Include an overview of your theme’s goals, palette, typography, and component deltas.
|
|
263
|
+
- Add code snippets for critical overrides and an architecture diagram.
|
|
264
|
+
|
|
265
|
+
- Contribution Guidelines for Theme Development
|
|
266
|
+
- Follow repository `CONTRIBUTING.md` and maintain consistent code style.
|
|
267
|
+
- Keep PRs focused: token changes separate from component visual changes whenever possible.
|
|
268
|
+
|
|
269
|
+
## Practical Examples (from shaj-default)
|
|
270
|
+
|
|
271
|
+
- Config and Prefix
|
|
272
|
+
```scss
|
|
273
|
+
// 01-settings/_settings.config.scss
|
|
274
|
+
$ENV: 'dev';
|
|
275
|
+
$prefix: atomix- !default;
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
- Colors Override with Base Integration
|
|
279
|
+
```scss
|
|
280
|
+
// 01-settings/_settings.colors.scss
|
|
281
|
+
@use '../../../styles/02-tools/tools.to-rgb' as *;
|
|
282
|
+
@use '../../../styles/02-tools/tools.color-functions' as *;
|
|
283
|
+
@use '../../../styles/01-settings/settings.colors' with (
|
|
284
|
+
$primary-1: #f0f9ff,
|
|
285
|
+
$primary-6: #0ea5e9,
|
|
286
|
+
$primary-7: #0284c7,
|
|
287
|
+
$gray-1: #f9fafb,
|
|
288
|
+
$gray-10: #111827,
|
|
289
|
+
// ... full scales per palette
|
|
290
|
+
);
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- Typography System
|
|
294
|
+
```scss
|
|
295
|
+
// 01-settings/_settings.typography.scss
|
|
296
|
+
@use '../../../styles/01-settings/settings.typography' with (
|
|
297
|
+
$font-family-base: (system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif),
|
|
298
|
+
$font-size-base: 1rem, // 16px
|
|
299
|
+
$h1-font-size: 2.75rem,
|
|
300
|
+
$line-height-base: 1.6,
|
|
301
|
+
$headings-font-weight: 600,
|
|
302
|
+
);
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
- Spacing Scale
|
|
306
|
+
```scss
|
|
307
|
+
// 01-settings/_settings.spacing.scss
|
|
308
|
+
$spacer: 16px !default;
|
|
309
|
+
$spacing-sizes: (0: 0px, 1: 4px, 2: 8px, 3: 12px, 4: 16px, 6: 24px, 8: 32px, 10: 40px, 12: 48px, 16: 64px, 20: 80px);
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
- Component Overrides (Button)
|
|
313
|
+
```scss
|
|
314
|
+
// 06-components/_components.button.scss
|
|
315
|
+
@use '../01-settings/settings.config' as *;
|
|
316
|
+
.c-btn.c-btn-primary {
|
|
317
|
+
background: linear-gradient(135deg, var(--#{$prefix}primary-6), var(--#{$prefix}primary-7));
|
|
318
|
+
border-color: var(--#{$prefix}primary-6);
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
- Component Overrides (Input)
|
|
323
|
+
```scss
|
|
324
|
+
// 06-components/_components.input.scss
|
|
325
|
+
@use '../01-settings/settings.config' as *;
|
|
326
|
+
.c-form-control:focus {
|
|
327
|
+
border-color: var(--#{$prefix}primary-6);
|
|
328
|
+
box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.1);
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## Theme Registration and Build
|
|
333
|
+
|
|
334
|
+
- Theme Metadata and Build Settings (`src/themes/themes.config.js`)
|
|
335
|
+
```js
|
|
336
|
+
export const themesConfig = {
|
|
337
|
+
metadata: {
|
|
338
|
+
'shaj-default': { name: 'Shaj Default', version: '1.0.0', tags: ['default','light'], supportsDarkMode: true },
|
|
339
|
+
// add your theme:
|
|
340
|
+
'my-theme': { name: 'My Theme', version: '0.1.0', tags: ['light'], supportsDarkMode: true }
|
|
341
|
+
},
|
|
342
|
+
build: { output: { directory: 'themes', formats: { expanded: '.css', compressed: '.min.css' } }, sass: { style: 'expanded', sourceMap: true, loadPaths: ['src'] } },
|
|
343
|
+
exports: { './themes/*': './dist/themes/*.css', './themes/*.min': './dist/themes/*.min.css' },
|
|
344
|
+
integration: { cssVariables: { colorMode: '--storybook-color-mode' }, classNames: { theme: 'data-theme', colorMode: 'data-color-mode' } }
|
|
345
|
+
};
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
- Suggested Steps to Add a New Theme
|
|
349
|
+
- Create `src/themes/<my-theme>/` with the layered structure shown above.
|
|
350
|
+
- Implement tokens in `01-settings` and component overrides in `06-components`.
|
|
351
|
+
- Add metadata in `themes.config.js` under `metadata` for discoverability.
|
|
352
|
+
- Include your theme CSS in your app by bundling `index.scss` or using the build output under `dist/themes`.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
By following the patterns and examples in `shaj-default`, you can create highly consistent, maintainable, and performant themes that integrate seamlessly with Atomix core styles while expressing distinct visual identities.
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
This directory contains all the themes for the Atomix Design System. Each theme is a collection of SCSS files that override or extend the base design system styles.
|
|
360
|
+
|
|
361
|
+
## Theme Structure
|
|
362
|
+
|
|
363
|
+
Each theme follows the same structure as the main design system:
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
theme-name/
|
|
367
|
+
├── 01-settings/
|
|
368
|
+
├── 02-tools/
|
|
369
|
+
├── 03-generic/
|
|
370
|
+
├── 04-elements/
|
|
371
|
+
├── 05-objects/
|
|
372
|
+
├── 06-components/
|
|
373
|
+
├── 99-utilities/
|
|
374
|
+
└── index.scss
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
## Available Themes
|
|
378
|
+
|
|
379
|
+
- **shaj-default** - The default theme for Atomix Design System
|
|
380
|
+
- **boomdevs** - A theme by the BoomDevs team
|
|
381
|
+
- **esrar** - A theme by the Esrar team
|
|
382
|
+
- **mashroom** - A theme by the Mashroom team
|
|
383
|
+
- **yabai** - A theme by the Yabai team
|
|
384
|
+
|
|
385
|
+
## How Themes Work
|
|
386
|
+
|
|
387
|
+
Themes work by importing and overriding the base design system styles. Each theme's `index.scss` file:
|
|
388
|
+
|
|
389
|
+
1. Imports local theme settings that override base settings
|
|
390
|
+
2. Imports and forwards base styles with local overrides
|
|
391
|
+
3. Combines theme-specific styles with the base design system
|
|
392
|
+
|
|
393
|
+
## Building Themes
|
|
394
|
+
|
|
395
|
+
Themes are automatically built when you run the main build command:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
npm run build
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
This generates individual CSS files for each theme in the `dist/themes` directory:
|
|
402
|
+
- Expanded CSS for development
|
|
403
|
+
- Minified CSS for production
|
|
404
|
+
|
|
405
|
+
You can also build only the themes with:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
npm run build:themes
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
## Using Themes
|
|
412
|
+
|
|
413
|
+
To use a theme in your project, import the corresponding CSS file:
|
|
414
|
+
|
|
415
|
+
```scss
|
|
416
|
+
// In your SCSS file
|
|
417
|
+
@import '~@shohojdhara/atomix/dist/themes/shaj-default.css';
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
Or in your JavaScript/TypeScript files:
|
|
421
|
+
|
|
422
|
+
```js
|
|
423
|
+
// Import the theme CSS
|
|
424
|
+
import '@shohojdhara/atomix/dist/themes/shaj-default.css';
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
## Creating New Themes
|
|
428
|
+
|
|
429
|
+
To create a new theme:
|
|
430
|
+
|
|
431
|
+
1. Create a new directory in `src/themes` with your theme name
|
|
432
|
+
2. Follow the same structure as existing themes
|
|
433
|
+
3. Create an `index.scss` file that imports and overrides base styles
|
|
434
|
+
4. Add your theme to the `themes.variants` array in `build.config.js`
|
|
435
|
+
5. Run the build process to generate the theme CSS files
|
|
436
|
+
|
|
437
|
+
## Theme Customization
|
|
438
|
+
|
|
439
|
+
Themes can customize any aspect of the design system by overriding variables, mixins, or component styles in their respective directories. For example, to customize button styles in your theme:
|
|
440
|
+
|
|
441
|
+
1. Create a `_buttons.scss` file in `themes/your-theme/06-components/`
|
|
442
|
+
2. Override the button styles as needed
|
|
443
|
+
3. Import and forward the file in `themes/your-theme/06-components/_index.scss`
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Atomix Theme Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist when creating or updating a theme to align with Atomix guidelines (Rollup, Storybook 8, Vitest, ITCSS-like SCSS).
|
|
4
|
+
|
|
5
|
+
## 1) Structure and Entrypoint
|
|
6
|
+
- [ ] Theme folder under `src/themes/<theme-name>/`
|
|
7
|
+
- [ ] `index.scss` uses ITCSS order and forwards local overrides:
|
|
8
|
+
```text
|
|
9
|
+
// Local settings override base
|
|
10
|
+
@use '01-settings/index' as *;
|
|
11
|
+
// Tools
|
|
12
|
+
@use '02-tools/index' as *;
|
|
13
|
+
@use '../../styles/02-tools/index' as tools;
|
|
14
|
+
// Generic
|
|
15
|
+
@use '03-generic/index' as *;
|
|
16
|
+
@use '../../styles/03-generic/index' as generic;
|
|
17
|
+
// Elements
|
|
18
|
+
@use '04-elements/index' as *;
|
|
19
|
+
@use '../../styles/04-elements/index' as elements;
|
|
20
|
+
// Objects
|
|
21
|
+
@use '05-objects/index' as *;
|
|
22
|
+
@use '../../styles/05-objects/index' as objects;
|
|
23
|
+
// Components
|
|
24
|
+
@use '06-components/index' as *;
|
|
25
|
+
@use '../../styles/06-components/index';
|
|
26
|
+
// Utilities
|
|
27
|
+
@use '99-utilities/index' as *;
|
|
28
|
+
@use '../../styles/99-utilities/index' as utilities;
|
|
29
|
+
```
|
|
30
|
+
- [ ] Exceptions (e.g., namespaced `@use`) are documented in a README inside the theme.
|
|
31
|
+
|
|
32
|
+
## 2) Tokens and Settings Coverage
|
|
33
|
+
- [ ] Colors: 1–10 scale for primary, neutral (gray), and any accent palettes
|
|
34
|
+
- [ ] settings.config (prefix, env), spacing, breakpoints, typography
|
|
35
|
+
- [ ] Component settings: button, input, card, nav, tabs, tooltip/popover, modal, forms
|
|
36
|
+
- [ ] Prefer `@forward` in `01-settings/_index.scss` to keep `index.scss` clean.
|
|
37
|
+
|
|
38
|
+
## 3) Theming Conventions
|
|
39
|
+
- [ ] Data attributes/classes:
|
|
40
|
+
- `data-theme="<theme-name>"` on `body` or `html`
|
|
41
|
+
- `data-atomix-color-mode="light|dark"` on `html`
|
|
42
|
+
- [ ] BEM-like class naming for components (e.g., `c-button`, `c-accordion`)
|
|
43
|
+
- [ ] Avoid global overrides; prefer component-scoped tokens/utilities.
|
|
44
|
+
|
|
45
|
+
## 4) Accessibility (A11y)
|
|
46
|
+
- [ ] Contrast: ≥ 4.5:1 normal text, ≥ 3.0:1 large text
|
|
47
|
+
- [ ] Focus visible and keyboard nav clearly styled in both color modes
|
|
48
|
+
- [ ] Form controls: placeholder, helper text meet contrast
|
|
49
|
+
- [ ] Record a11y state in `src/themes/themes.config.js` (`a11y` and `status` fields)
|
|
50
|
+
|
|
51
|
+
## 5) Performance
|
|
52
|
+
- [ ] Heavy effects (blur/backdrop-filter) are opt-in and scoped
|
|
53
|
+
- [ ] Limit CSS custom properties; group by prefix, keep under ~500 per theme
|
|
54
|
+
- [ ] Avoid duplicate declarations; rely on base utilities where possible
|
|
55
|
+
|
|
56
|
+
## 6) Build and Distribution
|
|
57
|
+
- [ ] `index.scss` compiles via `yarn build:styles` to `dist/themes/<theme>.css` and `.min.css`
|
|
58
|
+
- [ ] Test import from package: `@shohojdhara/atomix/themes/<theme>.css`
|
|
59
|
+
- [ ] Update `themes.config.js` metadata (name, version, tags, a11y, status)
|
|
60
|
+
|
|
61
|
+
## 7) Storybook
|
|
62
|
+
- [ ] Theme selectable via toolbar in `.storybook/preview.tsx`
|
|
63
|
+
- [ ] If using custom switcher, read theme list from shared source to avoid drift
|
|
64
|
+
- [ ] Provide a few Storybook stories showcasing theme-specific overrides (Buttons, Cards, Nav, Forms)
|
|
65
|
+
|
|
66
|
+
## 8) Testing
|
|
67
|
+
- [ ] Add or update minimal visual smoke tests in Storybook (manual)
|
|
68
|
+
- [ ] For unit tests (optional): follow Vitest API (`vi.*`), not Jest
|
|
69
|
+
- [ ] Run: `yarn dev` and validate main components under both color modes
|
|
70
|
+
|
|
71
|
+
## 9) Documentation
|
|
72
|
+
- [ ] Add theme README with design intent, palette examples, and any exceptions from the standard import pattern
|
|
73
|
+
- [ ] Link to the Themes Guide: `src/themes/README.md`
|
|
74
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Applemix Theme Settings Index
|
|
3
|
+
* Apple Mac OS 2026 Liquid Glass inspired settings
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Modern Sass module system with namespaced imports
|
|
7
|
+
@use 'settings.config' as config;
|
|
8
|
+
@use 'settings.colors' as colors;
|
|
9
|
+
@use 'settings.typography' as typography;
|
|
10
|
+
@use 'settings.animations' as anim;
|
|
11
|
+
@use 'settings.background' as bg;
|
|
12
|
+
|
|
13
|
+
// Export all modules for backward compatibility
|
|
14
|
+
@forward 'settings.config';
|
|
15
|
+
@forward 'settings.colors';
|
|
16
|
+
@forward 'settings.typography';
|
|
17
|
+
@forward 'settings.animations';
|
|
18
|
+
@forward 'settings.background';
|
|
19
|
+
|
|
20
|
+
// Forward core token groups from base theme for proper coverage
|
|
21
|
+
@forward '../../../styles/01-settings/settings.spacing';
|
|
22
|
+
@forward '../../../styles/01-settings/settings.breakpoints';
|
|
23
|
+
@forward '../../../styles/01-settings/settings.border';
|
|
24
|
+
@forward '../../../styles/01-settings/settings.border-radius';
|
|
File without changes
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Applemix Theme Colors
|
|
3
|
+
* Apple Mac OS 2026 Liquid Glass inspired color palette
|
|
4
|
+
* Features transparency, depth, and chromatic effects
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@use 'sass:color';
|
|
8
|
+
@use '../../../styles/02-tools/tools.to-rgb' as *;
|
|
9
|
+
@use '../../../styles/02-tools/tools.color-functions' as *;
|
|
10
|
+
@use '../../../styles/01-settings/settings.colors' with (
|
|
11
|
+
$white: #ffffff,
|
|
12
|
+
$black: #000000,
|
|
13
|
+
$color-contrast-dark: #1d1d1f,
|
|
14
|
+
$color-contrast-light: #f5f5f7,
|
|
15
|
+
$red-1: #fff5f5,
|
|
16
|
+
$red-2: #ffe3e3,
|
|
17
|
+
$red-3: #ffc9c9,
|
|
18
|
+
$red-4: #ff9f9f,
|
|
19
|
+
$red-5: #ff6b6b,
|
|
20
|
+
$red-6: #ff3b30,
|
|
21
|
+
$red-7: #d70015,
|
|
22
|
+
$red-8: #a50000,
|
|
23
|
+
$red-9: #750000,
|
|
24
|
+
$red-10: #4a0000,
|
|
25
|
+
$green-1: #f0fff4,
|
|
26
|
+
$green-2: #dcfce7,
|
|
27
|
+
$green-3: #bbf7d0,
|
|
28
|
+
$green-4: #86efac,
|
|
29
|
+
$green-5: #4ade80,
|
|
30
|
+
$green-6: #30d158,
|
|
31
|
+
$green-7: #28cd41,
|
|
32
|
+
$green-8: #20a934,
|
|
33
|
+
$green-9: #198527,
|
|
34
|
+
$green-10: #12611a,
|
|
35
|
+
$yellow-1: #fffbf0,
|
|
36
|
+
$yellow-2: #fff3c4,
|
|
37
|
+
$yellow-3: #ffe066,
|
|
38
|
+
$yellow-4: #ffcc02,
|
|
39
|
+
$yellow-5: #ffb000,
|
|
40
|
+
$yellow-6: #ff9500,
|
|
41
|
+
$yellow-7: #ff8c00,
|
|
42
|
+
$yellow-8: #e67300,
|
|
43
|
+
$yellow-9: #cc5500,
|
|
44
|
+
$yellow-10: #b33c00,
|
|
45
|
+
$blue-1: #f0f8ff,
|
|
46
|
+
$blue-2: #e1f2ff,
|
|
47
|
+
$blue-3: #c7e9ff,
|
|
48
|
+
$blue-4: #9dd7ff,
|
|
49
|
+
$blue-5: #64c7ff,
|
|
50
|
+
$blue-6: #007aff,
|
|
51
|
+
$blue-7: #0056d6,
|
|
52
|
+
$blue-8: #003d99,
|
|
53
|
+
$blue-9: #002966,
|
|
54
|
+
$blue-10: #001a44,
|
|
55
|
+
$gray-1: #fafafa,
|
|
56
|
+
$gray-2: #f5f5f7,
|
|
57
|
+
$gray-3: #e5e5e7,
|
|
58
|
+
$gray-4: #d1d1d6,
|
|
59
|
+
$gray-5: #aeaeb2,
|
|
60
|
+
$gray-6: #8e8e93,
|
|
61
|
+
$gray-7: #636366,
|
|
62
|
+
$gray-8: #48484a,
|
|
63
|
+
$gray-9: #2c2c2e,
|
|
64
|
+
$gray-10: #1c1c1e,
|
|
65
|
+
$primary-1: #f0f8ff,
|
|
66
|
+
$primary-2: #e1f2ff,
|
|
67
|
+
$primary-3: #c7e9ff,
|
|
68
|
+
$primary-4: #9dd7ff,
|
|
69
|
+
$primary-5: #64c7ff,
|
|
70
|
+
$primary-6: #007aff,
|
|
71
|
+
$primary-7: #0056d6,
|
|
72
|
+
$primary-8: #003d99,
|
|
73
|
+
$primary-9: #002966,
|
|
74
|
+
$primary-10: #001a44
|
|
75
|
+
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Applemix Theme Configuration
|
|
3
|
+
* Core configuration variables for the Apple-inspired liquid glass theme
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@use '../../../styles/01-settings/settings.config' with (
|
|
7
|
+
$prefix: 'atomix-'
|
|
8
|
+
);
|
|
9
|
+
// Environment configuration
|
|
10
|
+
$ENV: 'dev';
|
|
11
|
+
|
|
12
|
+
// CSS variable prefix for theme namespacing
|
|
13
|
+
$theme-name: 'applemix';
|
|
14
|
+
$theme-version: '1.0.0';
|
|
15
|
+
$theme-author: 'Atomix Design System';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Applemix Theme Typography
|
|
3
|
+
* Apple-inspired typography system with modern scaling
|
|
4
|
+
* Optimized for liquid glass interfaces and readability
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@use '../../../styles/01-settings/settings.typography' with (
|
|
8
|
+
// Apple-inspired font families
|
|
9
|
+
$font-family-base: (
|
|
10
|
+
-apple-system,
|
|
11
|
+
BlinkMacSystemFont,
|
|
12
|
+
'SF Pro Display',
|
|
13
|
+
'SF Pro Text',
|
|
14
|
+
'Helvetica Neue',
|
|
15
|
+
Helvetica,
|
|
16
|
+
Arial,
|
|
17
|
+
sans-serif
|
|
18
|
+
),
|
|
19
|
+
// Apple-style font weights
|
|
20
|
+
$font-weight-light: 300,
|
|
21
|
+
$font-weight-normal: 400,
|
|
22
|
+
$font-weight-medium: 500,
|
|
23
|
+
$font-weight-semibold: 600,
|
|
24
|
+
$font-weight-bold: 700,
|
|
25
|
+
$font-weight-heavy: 800,
|
|
26
|
+
$font-weight-black: 900,
|
|
27
|
+
// Base typography settings
|
|
28
|
+
$font-size-base: 1rem,
|
|
29
|
+
$line-height-base: 1.47
|
|
30
|
+
);
|