srcdev-nuxt-components 4.0.6 → 5.0.0

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.
Files changed (93) hide show
  1. package/README.md +171 -2
  2. package/assets/styles/extends-layer/srcdev-components/display-prompt-core/index.css +70 -0
  3. package/assets/styles/extends-layer/srcdev-components/index.css +2 -0
  4. package/assets/styles/extends-layer/srcdev-components/themes/_error.css +15 -0
  5. package/assets/styles/extends-layer/srcdev-components/themes/_info.css +15 -0
  6. package/assets/styles/extends-layer/srcdev-components/themes/_success.css +15 -0
  7. package/assets/styles/extends-layer/srcdev-components/themes/_warning.css +15 -0
  8. package/assets/styles/main.css +2 -5
  9. package/assets/styles/{forms/variables/_theme.css → setup/_head.css} +0 -6
  10. package/assets/styles/{a11y → setup/a11y}/_variables.css +2 -0
  11. package/assets/styles/setup/a11y/index.css +2 -0
  12. package/assets/styles/setup/index.css +5 -0
  13. package/assets/styles/setup/typography/index.css +2 -0
  14. package/assets/styles/setup/typography/utility-classes/_generic-font-classes.css +192 -0
  15. package/assets/styles/setup/typography/utility-classes/_generic-font-variation-settings.css +29 -0
  16. package/assets/styles/setup/typography/utility-classes/_generic-font-weights.css +41 -0
  17. package/assets/styles/setup/typography/utility-classes/index.css +3 -0
  18. package/assets/styles/setup/typography/vars/index.css +1 -0
  19. package/assets/styles/setup/utility-classes/_page.css +49 -0
  20. package/assets/styles/setup/utility-classes/index.css +3 -0
  21. package/assets/styles/setup/variables/index.css +1 -0
  22. package/components/accordian/AccordianCore.vue +46 -0
  23. package/components/{presentation/container-glow → container-glow}/ContainerGlowCore.vue +80 -80
  24. package/components/display-details/DisplayDetailsCore.vue +49 -60
  25. package/components/{functional/display-dialog → display-dialog}/DisplayDialogCore.vue +49 -38
  26. package/components/display-prompt/DisplayPromptCore.vue +187 -0
  27. package/components/expanding-panel/ExpandingPanel.vue +124 -0
  28. package/components/responsive-header/NavigationItems.vue +23 -18
  29. package/components/responsive-header/ResponsiveHeader.vue +345 -278
  30. package/components/{presentation/tabs → tabs}/TabsCore.vue +27 -58
  31. package/composables/useDialogControls.ts +22 -1
  32. package/package.json +1 -1
  33. package/assets/styles/a11y/index.css +0 -2
  34. package/assets/styles/forms/index.css +0 -2
  35. package/assets/styles/forms/themes/_error.css +0 -77
  36. package/assets/styles/forms/themes/_ghost.css +0 -77
  37. package/assets/styles/forms/themes/_input-action.css +0 -20
  38. package/assets/styles/forms/themes/_primary.css +0 -82
  39. package/assets/styles/forms/themes/_secondary.css +0 -77
  40. package/assets/styles/forms/themes/_success.css +0 -77
  41. package/assets/styles/forms/themes/_tertiary.css +0 -77
  42. package/assets/styles/forms/themes/_warning.css +0 -77
  43. package/assets/styles/forms/themes/index.css +0 -8
  44. package/assets/styles/forms/variables/_sizes.css +0 -82
  45. package/assets/styles/forms/variables/index.css +0 -2
  46. package/assets/styles/typography/index.css +0 -2
  47. package/assets/styles/typography/utils/_font-classes.css +0 -160
  48. package/assets/styles/typography/utils/_weights.css +0 -69
  49. package/assets/styles/typography/utils/index.css +0 -2
  50. package/assets/styles/typography/variables/_colors.css +0 -14
  51. package/assets/styles/typography/variables/index.css +0 -2
  52. package/assets/styles/utils/_animations.css +0 -42
  53. package/assets/styles/utils/_canvasWidths.css +0 -18
  54. package/assets/styles/utils/_display.css +0 -7
  55. package/assets/styles/utils/_page.css +0 -27
  56. package/assets/styles/utils/_placement.css +0 -73
  57. package/assets/styles/utils/index.css +0 -7
  58. package/assets/styles/variables/components/_accordian.css +0 -7
  59. package/assets/styles/variables/components/_container-glow-core.css +0 -16
  60. package/assets/styles/variables/components/_display-dialog-core.css +0 -35
  61. package/assets/styles/variables/components/_tabs.css +0 -18
  62. package/assets/styles/variables/components/display-prompt-core/_scaffolding.css +0 -57
  63. package/assets/styles/variables/components/display-prompt-core/index.css +0 -2
  64. package/assets/styles/variables/components/display-prompt-core/themes/_error.css +0 -39
  65. package/assets/styles/variables/components/display-prompt-core/themes/_info.css +0 -39
  66. package/assets/styles/variables/components/display-prompt-core/themes/_success.css +0 -39
  67. package/assets/styles/variables/components/display-prompt-core/themes/_warning.css +0 -39
  68. package/assets/styles/variables/components/index.css +0 -5
  69. package/assets/styles/variables/index.css +0 -2
  70. package/components/functional/accordian/AccordianCore.vue +0 -138
  71. package/components/presentation/display-prompt/DisplayPromptCore.vue +0 -150
  72. /package/assets/styles/{variables/components/display-prompt-core → extends-layer/srcdev-components}/themes/index.css +0 -0
  73. /package/assets/styles/{a11y → setup/a11y}/_utils.css +0 -0
  74. /package/assets/styles/{typography/variables/_reponsive-font-size.css → setup/typography/vars/_reponsive-font-sizes.css} +0 -0
  75. /package/assets/styles/{utils → setup/utility-classes}/_margin-helpers.css +0 -0
  76. /package/assets/styles/{utils → setup/utility-classes}/_padding-helpers.css +0 -0
  77. /package/assets/styles/{variables → setup/variables}/colors/_blue.css +0 -0
  78. /package/assets/styles/{variables → setup/variables}/colors/_gray.css +0 -0
  79. /package/assets/styles/{variables → setup/variables}/colors/_green.css +0 -0
  80. /package/assets/styles/{variables → setup/variables}/colors/_orange.css +0 -0
  81. /package/assets/styles/{variables → setup/variables}/colors/_red.css +0 -0
  82. /package/assets/styles/{variables → setup/variables}/colors/_yellow.css +0 -0
  83. /package/assets/styles/{variables/colors/colors.css → setup/variables/colors/index.css} +0 -0
  84. /package/components/{functional/display-dialog → display-dialog}/variants/DisplayDialogConfirm.vue +0 -0
  85. /package/components/{functional/display-dialog → display-dialog}/variants/DisplayDialogScrollableContent.vue +0 -0
  86. /package/components/{presentation/display-grid → display-grid}/DisplayGridCore.vue +0 -0
  87. /package/components/{presentation/display-prompt → display-prompt}/variants/DisplayPromptError.vue +0 -0
  88. /package/components/{presentation/layout-grids → layout-grids}/LayoutGridA.vue +0 -0
  89. /package/components/{presentation/layout-grids → layout-grids}/LayoutGridB.vue +0 -0
  90. /package/components/{presentation/layout-row → layout-row}/LayoutRow.vue +0 -0
  91. /package/components/{presentation/masonry-grid → masonry-grid}/MasonryGrid.vue +0 -0
  92. /package/components/{presentation/masonry-grid-sorted → masonry-grid-sorted}/MasonryGridSorted.vue +0 -0
  93. /package/components/{functional/pop-over → pop-over}/PopOver.vue +0 -0
package/README.md CHANGED
@@ -10,16 +10,185 @@ Althought this repo is public and feel free to do what you wish with it, this ha
10
10
  npm install --save nuxt-compnents
11
11
  ```
12
12
 
13
- ## Additional reuired packages
13
+ ## Additional required packages
14
14
 
15
15
  ```bash
16
16
  npm install --save @oddbird/css-anchor-positioning
17
17
  ```
18
18
 
19
- Then add the dependency to their `extends` in `nuxt.config`:
19
+ Then add the dependency to the property `extends` in `nuxt.config`:
20
20
 
21
21
  ```ts
22
22
  defineNuxtConfig({
23
23
  extends: 'nuxt-compnents',
24
24
  });
25
25
  ```
26
+
27
+ ## Styles Architecture
28
+
29
+ The `/assets/styles` directory contains a modular CSS architecture designed for scalability and maintainability. The styles are organized into the following structure:
30
+
31
+ ### Main Entry Point
32
+
33
+ - **`main.css`** - Primary entry point that imports all style modules
34
+
35
+ ### Setup Layer (`/setup`)
36
+
37
+ The setup layer provides the foundational styles and utilities:
38
+
39
+ #### Core Configuration
40
+
41
+ - **`_head.css`** - Root-level CSS custom properties including:
42
+ - Font size and line height defaults
43
+ - Primary font family stack (futura-pt, Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif)
44
+
45
+ #### Variables (`/variables`)
46
+
47
+ - **Color System** - Comprehensive color palette with semantic naming:
48
+ - `_blue.css` - Blue color scale (--blue-0 to --blue-12)
49
+ - `_gray.css` - Gray color scale
50
+ - `_green.css` - Green color scale
51
+ - `_orange.css` - Orange color scale
52
+ - `_red.css` - Red color scale
53
+ - `_yellow.css` - Yellow color scale
54
+
55
+ #### Typography (`/typography`)
56
+
57
+ - **Responsive Font Sizes** - Fluid typography using clamp() functions:
58
+ - `--step-5` to `--step--2` providing 8 responsive font size steps
59
+ - **Utility Classes** - Pre-built typography classes:
60
+ - `.heading-1` through `.heading-5` - Semantic heading styles
61
+ - Generic font weight and variation settings
62
+ - **Font Variation Settings** - Advanced typography controls
63
+
64
+ #### Utility Classes (`/utility-classes`)
65
+
66
+ - **Spacing Helpers**:
67
+ - `_margin-helpers.css` - Comprehensive margin utilities (`.mi-auto`, `.mb-0`, etc.)
68
+ - `_padding-helpers.css` - Padding utility classes
69
+ - **Page Layout** - Base page styling (`_page.css`)
70
+
71
+ #### Accessibility (`/a11y`)
72
+
73
+ - **Screen Reader Utilities** - `.sr-only` class for accessible hidden content
74
+ - **A11y Variables** - Accessibility-focused CSS custom properties
75
+ - **Utility Functions** - Helper classes for improved accessibility
76
+
77
+ ### Component Layer (`/extends-layer/srcdev-components`)
78
+
79
+ Component-specific styles for the included components:
80
+
81
+ #### Display Prompt Component
82
+
83
+ - **`_scaffolding.css`** - Core component structure with CSS custom properties:
84
+ - Wrapper styling (border-radius, layout)
85
+ - Inner content styling (margin, padding, gap)
86
+ - Icon sizing and positioning
87
+ - Content spacing and typography
88
+ - **Themes** - Pre-built component variants:
89
+ - `_error.css` - Error state styling
90
+ - `_info.css` - Information state styling
91
+ - `_success.css` - Success state styling
92
+ - `_warning.css` - Warning state styling
93
+
94
+ ### Import Structure
95
+
96
+ The styles follow a cascading import pattern:
97
+
98
+ ```text
99
+ main.css
100
+ ├── setup/
101
+ │ ├── index.css
102
+ │ ├── _head.css
103
+ │ ├── utility-classes/
104
+ │ │ ├── index.css
105
+ │ │ ├── _margin-helpers.css
106
+ │ │ ├── _padding-helpers.css
107
+ │ │ └── _page.css
108
+ │ ├── a11y/
109
+ │ │ ├── index.css
110
+ │ │ ├── _utils.css
111
+ │ │ └── _variables.css
112
+ │ ├── variables/
113
+ │ │ ├── index.css
114
+ │ │ └── colors/
115
+ │ │ ├── index.css
116
+ │ │ ├── _blue.css
117
+ │ │ ├── _gray.css
118
+ │ │ ├── _green.css
119
+ │ │ ├── _orange.css
120
+ │ │ ├── _red.css
121
+ │ │ └── _yellow.css
122
+ │ └── typography/
123
+ │ ├── index.css
124
+ │ ├── utility-classes/
125
+ │ │ ├── index.css
126
+ │ │ ├── _generic-font-classes.css
127
+ │ │ ├── _generic-font-variation-settings.css
128
+ │ │ └── _generic-font-weights.css
129
+ │ └── vars/
130
+ │ ├── index.css
131
+ │ └── _reponsive-font-sizes.css
132
+ └── extends-layer/srcdev-components/
133
+ ├── index.css
134
+ ├── display-prompt-core/
135
+ │ └── index.css
136
+ └── themes/
137
+ ├── index.css
138
+ ├── _error.css
139
+ ├── _info.css
140
+ ├── _success.css
141
+ └── _warning.css
142
+ ```
143
+
144
+ This architecture ensures proper CSS cascade order and allows for easy customization through CSS custom properties.
145
+
146
+ ## Development Environment (`.vscode`)
147
+
148
+ The `.vscode` directory contains Visual Studio Code configuration files to ensure a consistent development experience across the project:
149
+
150
+ ### Workspace Configuration
151
+
152
+ - **`settings.json`** - VS Code workspace settings including:
153
+ - Code formatting configuration (2-space indentation, auto-formatting on save)
154
+ - ESLint, Prettier, and Stylelint integration
155
+ - File handling settings (trim whitespace, final newlines, Unix line endings)
156
+ - CSS variable recognition for the project's custom properties
157
+
158
+ ### Recommended Extensions
159
+
160
+ - **`extensions.json`** - Curated list of VS Code extensions for optimal development:
161
+ - **Vue.js Development**: `vue.volar` - Vue 3 language support
162
+ - **Nuxt.js Development**: `nuxtr.nuxtr-vscode` - Enhanced Nuxt development tools
163
+ - **Code Quality**: `dbaeumer.vscode-eslint`, `esbenp.prettier-vscode` - Linting and formatting
164
+ - **CSS Development**: `willofindie.vscode-cssvar` - CSS custom property IntelliSense
165
+ - **Testing**: `vitest.explorer` - Vitest test runner integration
166
+ - **Markdown**: `davidanson.vscode-markdownlint` - Markdown linting
167
+ - **Productivity**: `jkjustjoshing.vscode-text-pastry`, `formulahendry.auto-rename-tag`
168
+
169
+ ### Code Snippets
170
+
171
+ The `.vscode` directory includes comprehensive code snippets for rapid component development:
172
+
173
+ #### Core Components
174
+
175
+ - **`srcdev-nuxt3-component-boilerplate.code-snippets`** - Base component template with prop validation
176
+ - **`srcdev-nuxt3-page-layout.code-snippets`** - Page layout scaffolding
177
+ - **`srcdev-nuxt3-pinia-store-setup.code-snippets`** - Pinia store configuration
178
+
179
+ #### UI Components
180
+
181
+ - **`srcdev-nuxt3-accordian-component.code-snippets`** - Accordion component templates
182
+ - **`srcdev-nuxt3-carousel-basic-component.code-snippets`** - Basic carousel implementation
183
+ - **`srcdev-nuxt3-carousel-flip-component.code-snippets`** - Flip carousel variant
184
+ - **`srcdev-nuxt3-container-glow-component.code-snippets`** - Container with glow effects
185
+ - **`srcdev-nuxt3-dialog-component.code-snippets`** - Modal dialog templates
186
+ - **`srcdev-nuxt3-display-banner-component.code-snippets`** - Display banner component
187
+ - **`srcdev-nuxt3-display-details-component.code-snippets`** - Collapsible details component
188
+ - **`srcdev-nuxt3-display-prompt-component.code-snippets`** - Alert/notification prompts
189
+ - **`srcdev-nuxt3-expanding-panel-component.code-snippets`** - Expandable panel component
190
+ - **`srcdev-nuxt3-layout-row.code-snippets`** - Layout row component
191
+ - **`srcdev-nuxt3-responsive-header-component.code-snippets`** - Responsive navigation header
192
+ - **`srcdev-nuxt3-tabs-component.code-snippets`** - Tab component system
193
+
194
+ Each snippet provides both HTML template usage examples and TypeScript setup code, enabling developers to quickly implement components with proper typing and configuration.
@@ -0,0 +1,70 @@
1
+ .display-prompt-core {
2
+ .display-prompt-wrapper {
3
+ background-color: var(--component-theme-10);
4
+ border: 1px solid var(--component-theme-8);
5
+ border-inline-start: 8px solid var(--component-theme-8);
6
+ border-radius: 4px;
7
+ border-start-start-radius: 8px;
8
+ border-end-start-radius: 8px;
9
+
10
+ .display-prompt-inner {
11
+ align-items: center;
12
+ gap: 12px;
13
+ padding-block: 1rem;
14
+ padding-inline: 1.5rem;
15
+
16
+ .display-prompt-icon {
17
+ .icon {
18
+ color: var(--component-theme-8);
19
+ font-size: 3rem;
20
+ font-style: normal;
21
+ font-weight: normal;
22
+ }
23
+ }
24
+
25
+ .display-prompt-content {
26
+ gap: 1rem;
27
+ margin: 0;
28
+ padding: 0.2rem;
29
+
30
+ .title {
31
+ font-size: var(--step-2);
32
+ font-weight: bold;
33
+ line-height: 1.3;
34
+ color: var(--component-theme-8);
35
+ margin: 0;
36
+ padding: 0;
37
+ }
38
+
39
+ .text {
40
+ font-size: var(--step-2);
41
+ font-weight: normal;
42
+ line-height: 1.3;
43
+ color: var(--component-theme-8);
44
+ margin: 0;
45
+ padding: 0;
46
+ }
47
+ }
48
+ .display-prompt-action {
49
+ background-color: transparent;
50
+ align-items: center;
51
+ margin: 1rem;
52
+ padding: 0.5rem;
53
+ border: 0.1rem solid var(--component-theme-8);
54
+ border-radius: 50%;
55
+ outline: 1px solid var(--component-theme-3);
56
+
57
+ &:hover {
58
+ cursor: pointer;
59
+ }
60
+
61
+ .icon {
62
+ color: var(--component-theme-8);
63
+ font-size: var(--step-2);
64
+ border: 1px solid green;
65
+ padding: 1rem;
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,2 @@
1
+ @import './themes';
2
+ @import './display-prompt-core';
@@ -0,0 +1,15 @@
1
+ [data-prompt-theme='error'] {
2
+ --component-theme-0: var(--red-0);
3
+ --component-theme-1: var(--red-1);
4
+ --component-theme-2: var(--red-2);
5
+ --component-theme-3: var(--red-3);
6
+ --component-theme-4: var(--red-4);
7
+ --component-theme-5: var(--red-5);
8
+ --component-theme-6: var(--red-6);
9
+ --component-theme-7: var(--red-7);
10
+ --component-theme-8: var(--red-8);
11
+ --component-theme-9: var(--red-9);
12
+ --component-theme-10: var(--red-10);
13
+ --component-theme-11: var(--red-11);
14
+ --component-theme-12: var(--red-12);
15
+ }
@@ -0,0 +1,15 @@
1
+ [data-prompt-theme='info'] {
2
+ --component-theme-0: var(--blue-0);
3
+ --component-theme-1: var(--blue-1);
4
+ --component-theme-2: var(--blue-2);
5
+ --component-theme-3: var(--blue-3);
6
+ --component-theme-4: var(--blue-4);
7
+ --component-theme-5: var(--blue-5);
8
+ --component-theme-6: var(--blue-6);
9
+ --component-theme-7: var(--blue-7);
10
+ --component-theme-8: var(--blue-8);
11
+ --component-theme-9: var(--blue-9);
12
+ --component-theme-10: var(--blue-10);
13
+ --component-theme-11: var(--blue-11);
14
+ --component-theme-12: var(--blue-12);
15
+ }
@@ -0,0 +1,15 @@
1
+ [data-prompt-theme='success'] {
2
+ --component-theme-0: var(--green-0);
3
+ --component-theme-1: var(--green-1);
4
+ --component-theme-2: var(--green-2);
5
+ --component-theme-3: var(--green-3);
6
+ --component-theme-4: var(--green-4);
7
+ --component-theme-5: var(--green-5);
8
+ --component-theme-6: var(--green-6);
9
+ --component-theme-7: var(--green-7);
10
+ --component-theme-8: var(--green-8);
11
+ --component-theme-9: var(--green-9);
12
+ --component-theme-10: var(--green-10);
13
+ --component-theme-11: var(--green-11);
14
+ --component-theme-12: var(--green-12);
15
+ }
@@ -0,0 +1,15 @@
1
+ [data-prompt-theme='warning'] {
2
+ --component-theme-0: var(--orange-0);
3
+ --component-theme-1: var(--orange-1);
4
+ --component-theme-2: var(--orange-2);
5
+ --component-theme-3: var(--orange-3);
6
+ --component-theme-4: var(--orange-4);
7
+ --component-theme-5: var(--orange-5);
8
+ --component-theme-6: var(--orange-6);
9
+ --component-theme-7: var(--orange-7);
10
+ --component-theme-8: var(--orange-8);
11
+ --component-theme-9: var(--orange-9);
12
+ --component-theme-10: var(--orange-10);
13
+ --component-theme-11: var(--orange-11);
14
+ --component-theme-12: var(--orange-12);
15
+ }
@@ -1,5 +1,2 @@
1
- @import './variables';
2
- @import './forms';
3
- @import './utils';
4
- @import './typography';
5
- @import './a11y';
1
+ @import './setup/';
2
+ @import './extends-layer/srcdev-components/';
@@ -1,11 +1,5 @@
1
1
  :root {
2
2
  --font-size: 1.6rem;
3
3
  --line-height: calc((var(--font-size) * 2) - 1rem);
4
-
5
4
  --font-family: futura-pt, Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
6
-
7
- --theme-error-surface: var(--red-12);
8
- --theme-error-text: var(--red-0);
9
-
10
- --theme-form-button-font-size-normal: var(--form-element-font-size);
11
5
  }
@@ -5,4 +5,6 @@
5
5
 
6
6
  --box-shadow-off: 0 0 0 0.3rem transparent;
7
7
  --box-shadow-on: 0 0 0 0.3rem light-dark(var(--blue-12), var(--gray-0));
8
+
9
+ --focus-visible-box-shadow: 0 0 0 0.3rem light-dark(var(--blue-12), var(--gray-0));
8
10
  }
@@ -0,0 +1,2 @@
1
+ @import './_variables.css';
2
+ @import './_utils.css';
@@ -0,0 +1,5 @@
1
+ @import './utility-classes/';
2
+ @import './a11y/';
3
+ @import './variables/';
4
+ @import './typography/';
5
+ @import './_head.css';
@@ -0,0 +1,2 @@
1
+ @import './utility-classes/';
2
+ @import './vars/';
@@ -0,0 +1,192 @@
1
+ :root {
2
+ .heading-1 {
3
+ font-size: var(--step-5);
4
+ font-weight: bold;
5
+ line-height: 1.3;
6
+ }
7
+
8
+ .heading-2 {
9
+ font-size: var(--step-4);
10
+ font-weight: bold;
11
+ line-height: 1.3;
12
+ }
13
+
14
+ .heading-3 {
15
+ font-size: var(--step-3);
16
+ font-weight: bold;
17
+ line-height: 1.3;
18
+ }
19
+
20
+ .heading-4 {
21
+ font-size: var(--step-2);
22
+ font-weight: bold;
23
+ line-height: 1.3;
24
+ }
25
+
26
+ .heading-5 {
27
+ font-size: var(--step-1);
28
+ font-weight: bold;
29
+ line-height: 1.3;
30
+ }
31
+
32
+ .heading-6 {
33
+ font-size: var(--step-0);
34
+ font-weight: bold;
35
+ line-height: 1.3;
36
+ }
37
+
38
+ /* Body text */
39
+
40
+ .body-large {
41
+ font-size: var(--step-3);
42
+ font-weight: normal;
43
+ line-height: 1.5;
44
+ }
45
+
46
+ .body-medium {
47
+ font-size: var(--step-2);
48
+ font-weight: normal;
49
+ line-height: 1.5;
50
+ }
51
+
52
+ .body-normal {
53
+ font-size: var(--step-1);
54
+ font-weight: normal;
55
+ line-height: 1.5;
56
+ }
57
+
58
+ .body-small {
59
+ font-size: var(--step--0);
60
+ font-weight: normal;
61
+ line-height: 1.5;
62
+ }
63
+
64
+ .body-xsmall {
65
+ font-size: var(--step--1);
66
+ font-weight: normal;
67
+ line-height: 1.5;
68
+ }
69
+
70
+ .body-large-semibold {
71
+ font-size: var(--step-3);
72
+ font-weight: 500;
73
+ line-height: 1.5;
74
+ }
75
+
76
+ .body-medium-semibold {
77
+ font-size: var(--step-2);
78
+ font-weight: 500;
79
+ line-height: 1.5;
80
+ }
81
+
82
+ .body-normal-semibold {
83
+ font-size: var(--step-1);
84
+ font-weight: 500;
85
+ line-height: 1.5;
86
+ }
87
+
88
+ .body-small-semibold {
89
+ font-size: var(--step-0);
90
+ font-weight: 500;
91
+ line-height: 1.5;
92
+ }
93
+
94
+ .body-xsmall-semibold {
95
+ font-size: var(--step--1);
96
+ font-weight: 500;
97
+ line-height: 1.5;
98
+ }
99
+
100
+ .body-large-bold {
101
+ font-size: var(--step-3);
102
+ font-weight: bold;
103
+ line-height: 1.5;
104
+ }
105
+
106
+ .body-medium-bold {
107
+ font-size: var(--step-2);
108
+ font-weight: bold;
109
+ line-height: 1.5;
110
+ }
111
+
112
+ .body-normal-bold {
113
+ font-size: var(--step-1);
114
+ font-weight: bold;
115
+ line-height: 1.5;
116
+ }
117
+
118
+ .body-small-bold {
119
+ font-size: var(--step-0);
120
+ font-weight: bold;
121
+ line-height: 1.5;
122
+ }
123
+
124
+ .body-xsmall-bold {
125
+ font-size: var(--step--1);
126
+ font-weight: bold;
127
+ line-height: 1.5;
128
+ }
129
+
130
+ /* Links */
131
+
132
+ .link-large {
133
+ color: var(--theme-link-default);
134
+ font-size: var(--step-3);
135
+ font-weight: 600;
136
+ line-height: 1.5;
137
+ text-decoration: underline;
138
+
139
+ &:visited {
140
+ color: var(--theme-link-default);
141
+ }
142
+ }
143
+
144
+ .link-medium {
145
+ color: var(--theme-link-default);
146
+ font-size: var(--step-2);
147
+ font-weight: 600;
148
+ line-height: 1.5;
149
+ text-decoration: underline;
150
+
151
+ &:visited {
152
+ color: var(--theme-link-default);
153
+ }
154
+ }
155
+
156
+ .link-normal {
157
+ color: var(--theme-link-default);
158
+ font-size: var(--step-1);
159
+ font-weight: 600;
160
+ line-height: 1.5;
161
+ text-decoration: underline;
162
+
163
+ &:visited,
164
+ &:active {
165
+ color: var(--theme-link-default);
166
+ }
167
+ }
168
+
169
+ .link-small {
170
+ color: var(--theme-link-default);
171
+ font-size: var(--step-0);
172
+ font-weight: 600;
173
+ line-height: 1.5;
174
+ text-decoration: underline;
175
+
176
+ &:visited {
177
+ color: var(--theme-link-default);
178
+ }
179
+ }
180
+
181
+ .link-xsmall {
182
+ color: var(--theme-link-default);
183
+ font-size: var(--step--1);
184
+ font-weight: 600;
185
+ line-height: 1.5;
186
+ text-decoration: underline;
187
+
188
+ &:visited {
189
+ color: var(--theme-link-default);
190
+ }
191
+ }
192
+ }
@@ -0,0 +1,29 @@
1
+ :root {
2
+ .fvs-wght-100 {
3
+ font-variation-settings: 'wght' 100;
4
+ }
5
+ .fvs-wght-200 {
6
+ font-variation-settings: 'wght' 200;
7
+ }
8
+ .fvs-wght-300 {
9
+ font-variation-settings: 'wght' 300;
10
+ }
11
+ .fvs-wght-400 {
12
+ font-variation-settings: 'wght' 400;
13
+ }
14
+ .fvs-wght-500 {
15
+ font-variation-settings: 'wght' 500;
16
+ }
17
+ .fvs-wght-600 {
18
+ font-variation-settings: 'wght' 600;
19
+ }
20
+ .fvs-wght-700 {
21
+ font-variation-settings: 'wght' 700;
22
+ }
23
+ .fvs-wght-800 {
24
+ font-variation-settings: 'wght' 800;
25
+ }
26
+ .fvs-wght-900 {
27
+ font-variation-settings: 'wght' 900;
28
+ }
29
+ }
@@ -0,0 +1,41 @@
1
+ :root {
2
+ /* By numeric step */
3
+ .wght-100 {
4
+ font-weight: 100;
5
+ }
6
+ .wght-200 {
7
+ font-weight: 200;
8
+ }
9
+ .wght-300 {
10
+ font-weight: 300;
11
+ }
12
+ .wght-400 {
13
+ font-weight: 400;
14
+ }
15
+ .wght-500 {
16
+ font-weight: 500;
17
+ }
18
+ .wght-600 {
19
+ font-weight: 600;
20
+ }
21
+ .wght-700 {
22
+ font-weight: 700;
23
+ }
24
+ .wght-800 {
25
+ font-weight: 800;
26
+ }
27
+ .wght-900 {
28
+ font-weight: 900;
29
+ }
30
+
31
+ /* By named weight */
32
+ .light {
33
+ font-weight: light;
34
+ }
35
+ .normal {
36
+ font-weight: normal;
37
+ }
38
+ .bold {
39
+ font-weight: bold;
40
+ }
41
+ }
@@ -0,0 +1,3 @@
1
+ @import './_generic-font-classes.css';
2
+ @import './_generic-font-weights.css';
3
+ @import './_generic-font-variation-settings.css';
@@ -0,0 +1 @@
1
+ @import './_reponsive-font-sizes.css';
@@ -0,0 +1,49 @@
1
+ html {
2
+ color-scheme: light dark;
3
+
4
+ &[data-color-scheme='light'] {
5
+ color-scheme: light;
6
+ }
7
+
8
+ &[data-color-scheme='dark'] {
9
+ color-scheme: dark;
10
+ }
11
+
12
+ background-color: var(--page-bg);
13
+
14
+ font-size: 62.5%;
15
+
16
+ transition: background-color 0.4s ease, color 0.4s ease;
17
+ scrollbar-gutter: stable;
18
+ }
19
+ body,
20
+ p,
21
+ pre,
22
+ code,
23
+ div,
24
+ fieldset,
25
+ legend,
26
+ li,
27
+ a {
28
+ color: light-dark(var(--gray-12), var(--gray-3));
29
+ font-family: var(--font-family);
30
+ font-size: var(--step-1);
31
+ }
32
+
33
+ body {
34
+ &.page-theme-grey {
35
+ background-color: lightseagreen;
36
+ }
37
+ }
38
+
39
+ form {
40
+ input {
41
+ font: inherit;
42
+ /* accent-color: var(--accent-color, red); */
43
+ }
44
+
45
+ label {
46
+ text-box-trim: both;
47
+ text-box-edge: cap alphabetic;
48
+ }
49
+ }
@@ -0,0 +1,3 @@
1
+ @import './_page.css';
2
+ @import './_margin-helpers.css';
3
+ @import './_padding-helpers.css';