@nappr/nappr-styles 0.3.2 → 0.3.5

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 (125) hide show
  1. package/README.md +33 -20
  2. package/dist/styles.css +7745 -1
  3. package/dist/styles.css.map +1 -1
  4. package/dist/styles.min.css +3 -0
  5. package/dist/styles.min.css.map +1 -0
  6. package/docs/_coverpage.md +2 -2
  7. package/docs/_sidebar.md +2 -2
  8. package/docs/docs.theme.css +2 -1
  9. package/docs/docs.theme.css.map +1 -1
  10. package/docs/index.html +1 -1
  11. package/docs/pages/displays.md +26 -8
  12. package/docs/pages/grid.md +365 -0
  13. package/docs/pages/helpers.md +30 -18
  14. package/docs/pages/quick-start.md +100 -14
  15. package/docs/temp.scss +122 -0
  16. package/index.d.ts +25 -0
  17. package/package.json +49 -14
  18. package/sass/_globals.module.scss +43 -0
  19. package/sass/_globals.scss +79 -0
  20. package/sass/components/_.scss +2 -0
  21. package/sass/components/_badge.scss +58 -0
  22. package/sass/components/_button.scss +244 -0
  23. package/sass/components/_nav.scss +95 -0
  24. package/sass/components/scrollbar/_.scss +102 -0
  25. package/sass/configs/_.scss +7 -0
  26. package/sass/configs/_breakpoints.scss +12 -0
  27. package/sass/configs/_defaults.scss +6 -0
  28. package/sass/configs/_grid.scss +10 -0
  29. package/sass/configs/_palettes.scss +72 -0
  30. package/sass/configs/_spacing.scss +36 -0
  31. package/sass/configs/_text.scss +39 -0
  32. package/sass/configs/_themes.scss +24 -0
  33. package/sass/core/funcs/_list.scss +43 -0
  34. package/sass/core/funcs/_map.scss +42 -0
  35. package/sass/core/funcs/_math.scss +35 -0
  36. package/sass/core/funcs/_string.scss +47 -0
  37. package/sass/core/mixins/_.scss +3 -0
  38. package/{lib → sass/core}/mixins/_links.scss +2 -2
  39. package/sass/core/mixins/_media-queries.scss +22 -0
  40. package/sass/core/mixins/_typography.scss +26 -0
  41. package/sass/core/placeholders/_.scss +4 -0
  42. package/sass/core/placeholders/_dimensions.scss +31 -0
  43. package/sass/core/placeholders/_flexbox.scss +11 -0
  44. package/sass/core/placeholders/_lists.scss +41 -0
  45. package/sass/core/placeholders/_positions.scss +19 -0
  46. package/sass/core/placeholders/_typography.scss +10 -0
  47. package/sass/elements/_.scss +6 -0
  48. package/sass/elements/_dialog.scss +13 -0
  49. package/{lib/htmls → sass/elements}/_form.scss +28 -6
  50. package/sass/elements/_links.scss +132 -0
  51. package/sass/elements/_lists.scss +11 -0
  52. package/{lib/htmls → sass/elements}/_table.scss +2 -6
  53. package/sass/elements/_typography.scss +13 -0
  54. package/sass/layout/grid/_.scss +4 -0
  55. package/sass/layout/grid/_columns.scss +32 -0
  56. package/sass/layout/grid/_gaps.scss +42 -0
  57. package/sass/layout/grid/_grid.scss +158 -0
  58. package/sass/layout/grid/_offsets.scss +35 -0
  59. package/sass/main.scss +59 -0
  60. package/sass/resets/_.scss +5 -0
  61. package/sass/resets/_base.scss +69 -0
  62. package/sass/resets/_nappr.scss +83 -0
  63. package/sass/themes/_dark.scss +17 -0
  64. package/sass/themes/_dracula.scss +17 -0
  65. package/sass/themes/_github-light.scss +17 -0
  66. package/sass/themes/_light.scss +17 -0
  67. package/sass/themes/_monokai-pro.scss +17 -0
  68. package/sass/themes/_night-owl.scss +17 -0
  69. package/sass/themes/_nord.scss +17 -0
  70. package/sass/themes/_tokyo-night.scss +17 -0
  71. package/sass/utilities/_.scss +21 -0
  72. package/sass/utilities/_dimensions.scss +11 -0
  73. package/sass/utilities/_displays.scss +127 -0
  74. package/sass/utilities/_flexbox.scss +102 -0
  75. package/{lib/helpers → sass/utilities}/_floats.scss +10 -15
  76. package/sass/utilities/_lists.scss +86 -0
  77. package/sass/utilities/_negates.scss +121 -0
  78. package/sass/utilities/_palette.scss +11 -0
  79. package/sass/utilities/_scrolls.scss +78 -0
  80. package/sass/utilities/_spacers.scss +120 -0
  81. package/sass/utilities/_square-grid.scss +33 -0
  82. package/sass/utilities/_typography.scss +106 -0
  83. package/sass/utilities/_visibility.scss +60 -0
  84. package/sass/utilities/_wrap.scss +12 -0
  85. package/styles.scss +5 -1
  86. package/lib/_globals.scss +0 -16
  87. package/lib/_reset.scss +0 -223
  88. package/lib/customs/scrollbar.scss +0 -40
  89. package/lib/funcs/_.scss +0 -5
  90. package/lib/funcs/_get-color.scss +0 -3
  91. package/lib/funcs/_math.scss +0 -5
  92. package/lib/funcs/_merge-palette.scss +0 -12
  93. package/lib/funcs/_rem.scss +0 -104
  94. package/lib/funcs/_strings.scss +0 -35
  95. package/lib/grid/_.scss +0 -4
  96. package/lib/grid/_col.scss +0 -117
  97. package/lib/grid/_row.scss +0 -117
  98. package/lib/grid/_square.scss +0 -34
  99. package/lib/grid/_wrap.scss +0 -39
  100. package/lib/helpers/_.scss +0 -9
  101. package/lib/helpers/_displays.scss +0 -151
  102. package/lib/helpers/_flexbox.scss +0 -105
  103. package/lib/helpers/_margins.scss +0 -13
  104. package/lib/helpers/_negates.scss +0 -171
  105. package/lib/helpers/_scrolls.scss +0 -55
  106. package/lib/helpers/_texts.scss +0 -101
  107. package/lib/helpers/_visibility.scss +0 -34
  108. package/lib/htmls/_.scss +0 -4
  109. package/lib/htmls/_headings.scss +0 -29
  110. package/lib/htmls/_links.scss +0 -11
  111. package/lib/mixins/_.scss +0 -9
  112. package/lib/mixins/_border-radius.scss +0 -61
  113. package/lib/mixins/_border.scss +0 -48
  114. package/lib/mixins/_dimensions.scss +0 -48
  115. package/lib/mixins/_font-size.scss +0 -22
  116. package/lib/mixins/_line-height.scss +0 -19
  117. package/lib/mixins/_margin-padding.scss +0 -66
  118. package/lib/mixins/_root-variables.scss +0 -11
  119. package/lib/mixins/_theme.scss +0 -25
  120. package/lib/styles.scss +0 -19
  121. package/lib/variables/_.scss +0 -4
  122. package/lib/variables/_breakpoints.scss +0 -5
  123. package/lib/variables/_colors.scss +0 -60
  124. package/lib/variables/_defaults.scss +0 -53
  125. /package/{lib/helpers → sass/utilities}/_pointers.scss +0 -0
@@ -0,0 +1,244 @@
1
+ @use 'sass:color';
2
+
3
+ // $COMPONENT_CONFIG: (
4
+ // 'hover-lightness': -10%,
5
+ // 'active-lightness': -15%,
6
+ // ) !default;
7
+
8
+ // ==========================================================
9
+ // BUTTON PLACEHOLDERS
10
+ // ==========================================================
11
+
12
+ %button-base {
13
+ align-items: center;
14
+ border: 0;
15
+ border-radius: 0.25rem;
16
+ cursor: pointer;
17
+ display: inline-flex;
18
+ font-family: inherit;
19
+ font-size: 1rem;
20
+ font-weight: 500;
21
+ gap: 0.5rem;
22
+ justify-content: center;
23
+ line-height: 1.2;
24
+ padding: 0.75rem 1rem;
25
+ text-align: center;
26
+ text-decoration: none;
27
+ user-select: none;
28
+ vertical-align: middle;
29
+ white-space: nowrap;
30
+
31
+ &.btn--rounded {
32
+ border-radius: 9999px;
33
+ }
34
+
35
+ // Focus state
36
+ &:focus-visible {
37
+ outline: 2px solid var(--nappr-theme-accent);
38
+ outline-offset: 2px;
39
+ }
40
+
41
+ // No outline modifier
42
+ &.btn--no-outline {
43
+ &:focus-visible {
44
+ outline: none;
45
+ }
46
+ }
47
+ }
48
+
49
+ // Button disabled state
50
+ %button-disabled {
51
+ cursor: not-allowed;
52
+ opacity: 0.65;
53
+ pointer-events: none;
54
+ }
55
+
56
+ %button-group-base {
57
+ align-items: center;
58
+ display: flex;
59
+ flex-direction: column;
60
+ gap: 0.5rem;
61
+ justify-content: center;
62
+ }
63
+
64
+ // ==========================================================
65
+ // BUTTON MIXINS
66
+ // ==========================================================
67
+
68
+ @mixin button-interactive {
69
+ &:not(:disabled, .disabled) {
70
+ @content;
71
+ }
72
+ }
73
+
74
+ @mixin button-transition {
75
+ transition:
76
+ background-color 0.15s ease-in-out,
77
+ border-color 0.15s ease-in-out,
78
+ color 0.15s ease-in-out,
79
+ box-shadow 0.15s ease-in-out;
80
+
81
+ // Note: border-color is included for secondary variant which has a border
82
+ }
83
+
84
+ // ==========================================================
85
+ // BUTTON COMPONENT
86
+ // ==========================================================
87
+
88
+ .btn {
89
+ @extend %button-base;
90
+ @include button-transition;
91
+
92
+ // Icon support
93
+ .icon {
94
+ align-items: center;
95
+ display: inline-flex;
96
+ flex-shrink: 0;
97
+ justify-content: center;
98
+ }
99
+
100
+ // Icon only (no text)
101
+ &.btn--icon-only {
102
+ aspect-ratio: 1;
103
+
104
+ // padding: config.$NAPPR_BUTTON_PADDING_Y;
105
+
106
+ .icon {
107
+ margin: 0;
108
+ }
109
+ }
110
+
111
+ // Icon on the left
112
+ &.btn--icon-left {
113
+ .icon {
114
+ order: -1;
115
+ }
116
+ }
117
+
118
+ // Icon on the right (default)
119
+ &.btn--icon-right {
120
+ .icon {
121
+ order: 1;
122
+ }
123
+ }
124
+
125
+ // Hover state
126
+ @include button-interactive {
127
+ &:hover {
128
+ text-decoration: none;
129
+ }
130
+ }
131
+
132
+ // Disabled state
133
+ &:disabled,
134
+ &.disabled {
135
+ @extend %button-disabled;
136
+ }
137
+ }
138
+
139
+ // ==========================================================
140
+ // BUTTON VARIANTS (PRIORITIES)
141
+ // ==========================================================
142
+
143
+ // Primary (default)
144
+ .btn,
145
+ .btn--primary {
146
+ background-color: var(--nappr-theme-accent);
147
+ border: 0;
148
+ color: var(--nappr-theme-text-primary);
149
+
150
+ @include button-interactive {
151
+ &:hover {
152
+ // Use color-mix for hover state (darken by 10%)
153
+ background-color: color-mix(
154
+ in srgb,
155
+ var(--nappr-theme-accent) 90%,
156
+ black 10%
157
+ );
158
+ }
159
+
160
+ &:active {
161
+ // Use color-mix for active state (darken by 15%)
162
+ background-color: color-mix(
163
+ in srgb,
164
+ var(--nappr-theme-accent) 85%,
165
+ black 15%
166
+ );
167
+ }
168
+ }
169
+ }
170
+
171
+ // Secondary (variant of primary)
172
+ .btn--secondary {
173
+ background-color: transparent;
174
+ border: 1px solid var(--nappr-theme-accent);
175
+ color: var(--nappr-theme-accent);
176
+
177
+ @include button-interactive {
178
+ &:hover {
179
+ background-color: var(--nappr-theme-accent);
180
+ color: var(--nappr-theme-text-primary);
181
+ }
182
+
183
+ &:active {
184
+ background-color: color-mix(
185
+ in srgb,
186
+ var(--nappr-theme-accent) 90%,
187
+ black 10%
188
+ );
189
+ border-color: color-mix(
190
+ in srgb,
191
+ var(--nappr-theme-accent) 90%,
192
+ black 10%
193
+ );
194
+ color: var(--nappr-theme-text-primary);
195
+ }
196
+ }
197
+ }
198
+
199
+ // Tertiary (border only, background on hover)
200
+ .btn--tertiary {
201
+ background-color: transparent;
202
+ border: 1px solid var(--nappr-theme-accent);
203
+ color: var(--nappr-theme-accent);
204
+
205
+ @include button-interactive {
206
+ &:hover {
207
+ background-color: var(--nappr-theme-accent);
208
+ border-color: var(--nappr-theme-accent);
209
+ color: var(--nappr-theme-text-primary);
210
+ }
211
+
212
+ &:active {
213
+ background-color: color-mix(
214
+ in srgb,
215
+ var(--nappr-theme-accent) 90%,
216
+ black 10%
217
+ );
218
+ border-color: color-mix(
219
+ in srgb,
220
+ var(--nappr-theme-accent) 90%,
221
+ black 10%
222
+ );
223
+ color: var(--nappr-theme-text-primary);
224
+ }
225
+ }
226
+ }
227
+
228
+ .btns-group {
229
+ @extend %button-group-base;
230
+
231
+ & > * {
232
+ width: 100%;
233
+ }
234
+ }
235
+
236
+ .btns-group--inline {
237
+ @extend %button-group-base;
238
+
239
+ flex-direction: row;
240
+
241
+ & > * {
242
+ width: auto;
243
+ }
244
+ }
@@ -0,0 +1,95 @@
1
+ .nav,
2
+ .navbar {
3
+ .nav__list {
4
+ display: flex;
5
+ flex-direction: column;
6
+ list-style-type: none;
7
+ margin: 0;
8
+ margin-block: 0;
9
+ padding: 0;
10
+ padding-inline-start: 0;
11
+ }
12
+
13
+ .nav__item {
14
+ align-items: stretch;
15
+ display: flex;
16
+ flex: 0 1 auto;
17
+ flex-direction: column;
18
+ padding-bottom: 0;
19
+ position: relative;
20
+ }
21
+
22
+ .nav__btn,
23
+ .nav__link {
24
+ // --hover-tint: var(--hover);
25
+ // --active-tint: var(--active);
26
+ align-items: center;
27
+ color: var(--nappr-theme-text-primary);
28
+ display: flex;
29
+ flex-direction: row;
30
+ font-size: 1rem;
31
+ font-weight: 700;
32
+ height: 100%;
33
+ justify-content: space-between;
34
+ line-height: 1.5rem;
35
+ margin: 0;
36
+ padding: 0.75rem 1rem;
37
+ text-align: left;
38
+ text-decoration: none;
39
+ width: 100%;
40
+ }
41
+ }
42
+
43
+ .navbar {
44
+ justify-content: flex-start;
45
+
46
+ .nav__list {
47
+ flex-flow: row nowrap;
48
+ gap: 1rem;
49
+ margin: 0 -1rem;
50
+ max-width: calc(100% + 1rem);
51
+ }
52
+
53
+ .nav__item {
54
+ align-items: flex-start;
55
+ flex: 1 1 0%;
56
+ position: static;
57
+ }
58
+
59
+ .nav__btn,
60
+ .nav__link {
61
+ font-size: 0.875rem;
62
+ font-weight: 400;
63
+ justify-content: center;
64
+ line-height: 1.5rem;
65
+ min-height: 3.5rem;
66
+ padding: 1rem;
67
+ text-align: center;
68
+ }
69
+ }
70
+
71
+ @media (width >= 62em) {
72
+ .nav {
73
+ justify-content: flex-start;
74
+
75
+ .nav__list {
76
+ flex-flow: row nowrap;
77
+ margin: 0 -1rem;
78
+ max-width: calc(100% + 1rem);
79
+ }
80
+
81
+ .nav__item {
82
+ align-items: flex-start;
83
+ position: static;
84
+ }
85
+
86
+ .nav__btn,
87
+ .nav__link {
88
+ font-size: 0.875rem;
89
+ font-weight: 400;
90
+ line-height: 1.5rem;
91
+ min-height: 3.5rem;
92
+ padding: 1rem;
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,102 @@
1
+ // ==========================================================
2
+ // SCROLLBAR COMPONENT
3
+ // ==========================================================
4
+ // Customizable scrollbar styles
5
+ // Apply the .scrollbar class to a parent element to enable custom scrollbar styling
6
+ // ----
7
+ // Usage:
8
+ // <div class="scrollbar">...</div>
9
+ // ----
10
+ // Customization via CSS variables:
11
+ // <div class="scrollbar" style="--scrollbar-width: 12px; --scrollbar-thumb-color: #007bff;">...</div>
12
+ // ----
13
+ // Or via modifier classes:
14
+ // <div class="scrollbar scrollbar--thin">...</div>
15
+ // <div class="scrollbar scrollbar--dark">...</div>
16
+
17
+ .scrollbar {
18
+ // CSS variables for customization (with defaults)
19
+ --scrollbar-width: 17px;
20
+ --scrollbar-track-color: var(--nappr-white, #ffffff);
21
+ --scrollbar-thumb-color: var(--nappr-grey-400, #cecece);
22
+ --scrollbar-thumb-hover-color: var(--nappr-grey-700, #383838);
23
+ --scrollbar-thumb-border-color: var(--nappr-white, #ffffff);
24
+ --scrollbar-corner-color: transparent;
25
+
26
+ // Webkit scrollbar styles
27
+ &::-webkit-scrollbar {
28
+ background: transparent;
29
+ overflow: visible;
30
+ width: var(--scrollbar-width);
31
+ }
32
+
33
+ &::-webkit-scrollbar-track {
34
+ background-color: var(--scrollbar-track-color);
35
+ }
36
+
37
+ &::-webkit-scrollbar-track-piece {
38
+ background-color: var(--scrollbar-track-color);
39
+ }
40
+
41
+ &::-webkit-scrollbar-corner {
42
+ background: var(--scrollbar-corner-color);
43
+ }
44
+
45
+ &::-webkit-scrollbar-thumb {
46
+ background-color: var(--scrollbar-thumb-color);
47
+ border: solid var(--scrollbar-thumb-border-color);
48
+ box-shadow:
49
+ inset 1px 1px 0 rgb(0 0 0 / 10%),
50
+ inset 0 -1px 0 rgb(0 0 0 / 7%);
51
+ }
52
+
53
+ &::-webkit-scrollbar-thumb:hover {
54
+ background-color: var(--scrollbar-thumb-hover-color);
55
+ }
56
+
57
+ &::-webkit-scrollbar-thumb:horizontal {
58
+ border-width: 4px 6px;
59
+ min-width: 40px;
60
+ }
61
+
62
+ &::-webkit-scrollbar-thumb:vertical {
63
+ border-width: 6px 4px;
64
+ min-height: 40px;
65
+ }
66
+
67
+ scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
68
+
69
+ // Firefox scrollbar styles
70
+ scrollbar-width: thin;
71
+ }
72
+
73
+ // ==========================================================
74
+ // SCROLLBAR MODIFIERS
75
+ // ==========================================================
76
+
77
+ // Thin scrollbar
78
+ .scrollbar--thin {
79
+ --scrollbar-width: 8px;
80
+ }
81
+
82
+ // Dark theme scrollbar
83
+ .scrollbar--dark {
84
+ --scrollbar-track-color: var(--nappr-grey-800, #1e1e1e);
85
+ --scrollbar-thumb-color: var(--nappr-grey-600, #6a6a6a);
86
+ --scrollbar-thumb-hover-color: var(--nappr-grey-500, #9c9c9c);
87
+ --scrollbar-thumb-border-color: var(--nappr-grey-800, #1e1e1e);
88
+ }
89
+
90
+ // Light theme scrollbar (default, but explicit)
91
+ .scrollbar--light {
92
+ --scrollbar-track-color: var(--nappr-white, #ffffff);
93
+ --scrollbar-thumb-color: var(--nappr-grey-400, #cecece);
94
+ --scrollbar-thumb-hover-color: var(--nappr-grey-700, #383838);
95
+ --scrollbar-thumb-border-color: var(--nappr-white, #ffffff);
96
+ }
97
+
98
+ // Primary color scrollbar
99
+ .scrollbar--primary {
100
+ --scrollbar-thumb-color: var(--nappr-primary-blue, #007bff);
101
+ --scrollbar-thumb-hover-color: var(--nappr-primary-blue, #007bff);
102
+ }
@@ -0,0 +1,7 @@
1
+ @forward './breakpoints';
2
+ @forward './defaults';
3
+ @forward './grid';
4
+ @forward './palettes';
5
+ @forward './themes';
6
+ @forward './spacing';
7
+ @forward './text';
@@ -0,0 +1,12 @@
1
+ $NAPPR_BREAKPOINTS: (
2
+ // Useless starts at 0px (Mobile Small)
3
+ // 'xs': 0em,
4
+ // Starts at 576px (Mobile)
5
+ 'sm': 36em,
6
+ // Starts at 768px (Tablet)
7
+ 'md': 48em,
8
+ // Starts at 992px (Desktop)
9
+ 'lg': 62em,
10
+ // Starts at 1248px (Desktop Extra Large)
11
+ 'xl': 78em
12
+ ) !default;
@@ -0,0 +1,6 @@
1
+ $NAPPR_DEFAULTS: (
2
+ 'xl-base': 1em,
3
+ 'body-width': 100vw,
4
+ 'border-radius': 0.25rem,
5
+ 'default-theme': 'dark-theme',
6
+ ) !default;
@@ -0,0 +1,10 @@
1
+ $NAPPR_GRID: (
2
+ 'columns': 12,
3
+ 'columns-sm': 6,
4
+ 'max-width': 1200px,
5
+ 'max-width-sm': 600px,
6
+ 'gutter-gap-sm': 1rem,
7
+ 'gutter-gap-md': 1rem,
8
+ 'gutter-gap-lg': 1.5rem,
9
+ 'gutter-gap-xl': 1.5rem,
10
+ ) !default;
@@ -0,0 +1,72 @@
1
+ $NAPPR_PALETTES: (
2
+ // --- Black & White Colors
3
+ 'black': #000000,
4
+ 'white': #ffffff,
5
+ 'grey': #7f7f7f,
6
+
7
+ // --- Primary colors
8
+ 'primary-blue': #007bff,
9
+ 'primary-red': #ff0000,
10
+ 'primary-green': #00ff00,
11
+ 'primary-yellow': #f0f00f,
12
+ 'primary-magenta': #800080,
13
+ 'primary-orange': #ffa500,
14
+
15
+ // --- Usual colors
16
+ 'usual-warning': #f5631a,
17
+ 'usual-success': #268744,
18
+ 'usual-info': #0762c8,
19
+ 'usual-error': #ff0000,
20
+
21
+ // --- Highlight colors
22
+ 'highlight-warning': #f5631a,
23
+ 'highlight-success': #268744,
24
+ 'highlight-info': #0762c8,
25
+ 'highlight-error': #ff0000,
26
+
27
+ // --- Grey colors
28
+ 'grey-100': #f8f8f8,
29
+ 'grey-200': #f0f0f0,
30
+ 'grey-300': #e7e7e7,
31
+ 'grey-400': #cecece,
32
+ 'grey-500': #9c9c9c,
33
+ 'grey-600': #6a6a6a,
34
+ 'grey-700': #383838,
35
+ 'grey-750': #2a2a2a,
36
+ 'grey-800': #1e1e1e,
37
+
38
+ // --- Pastel colors
39
+ 'pastel-blue': #5db0d7,
40
+ 'pastel-yellow': #f9da9b,
41
+ 'pastel-red': #db8c62,
42
+ 'pastel-green': #42b983,
43
+ 'pastel-purple': #9a7fd5,
44
+ 'pastel-verde': #40d4c7,
45
+ 'pastel-kaki': #b9c580,
46
+ 'pastel-gold': #c7b654,
47
+
48
+ // --- Chrome colors
49
+ 'chrome-red': #ff8080,
50
+ 'chrome-yellow': #ffdd9e,
51
+ 'chrome-black': #242424,
52
+ 'chrome-grey': #333333,
53
+ 'chrome-light': #525252,
54
+ 'chrome-white': #e6e6e6,
55
+
56
+ // --- MISC colors
57
+ 'airbnb': #ff385c,
58
+ 'amazon': #ff9900,
59
+ 'twitch': #9147ff,
60
+ 'youtube': #ff0000,
61
+ 'twitter': #1da1f2,
62
+ 'facebook': #365899,
63
+ 'instagram': linear-gradient(
64
+ 45deg,
65
+ #405de6,
66
+ #5851db,
67
+ #833ab4,
68
+ #c13584,
69
+ #e1306c,
70
+ #fd1d1d
71
+ )
72
+ ) !default;
@@ -0,0 +1,36 @@
1
+ @use '../core/funcs/map' as map;
2
+ @use '../core/funcs/list' as list;
3
+ @use '../core/funcs/math' as math;
4
+
5
+ @function generate-spacers-map(
6
+ $min,
7
+ $max,
8
+ $base: 4,
9
+ $suffix: 'v',
10
+ $unit: 'rem'
11
+ ) {
12
+ $map: ();
13
+ $range: list.iterate($min, $max);
14
+
15
+ @each $i in $range {
16
+ $value: math.div($i, $base);
17
+ $key: if($i < 0, 'n#{math.abs($i)}#{$suffix}', '#{$i}#{$suffix}');
18
+ $token: if($i == 0, '0', $key);
19
+ $map: map.set($map, $token, #{$value}#{$unit});
20
+ }
21
+
22
+ $map: map.merge(
23
+ (
24
+ 'auto': auto,
25
+ 'n1-5#{$suffix}': #{-0.375}#{$unit},
26
+ 'n0-5#{$suffix}': #{-0.125}#{$unit},
27
+ '0-5#{$suffix}': #{0.125}#{$unit},
28
+ '1-5#{$suffix}': #{0.375}#{$unit},
29
+ ),
30
+ $map
31
+ );
32
+
33
+ @return $map;
34
+ }
35
+
36
+ $NAPPR_SPACING: generate-spacers-map(-8, 32);
@@ -0,0 +1,39 @@
1
+ $NAPPR_TEXT: (
2
+ 'font-size': 1rem,
3
+ 'font-family': 'Helvetica, Arial, Verdana, sans-serif',
4
+ 'font-family--alt': '"Spectral", Georgia, serif',
5
+ 'weights-light': 300,
6
+ 'weights-regular': 400,
7
+ 'weights-medium': 500,
8
+ 'weights-bold': 700,
9
+ 'weight': 400,
10
+ 'weight--alt': 500,
11
+ 'line-height': 1.5rem,
12
+ 'spacing': 0 0 1.5rem 0,
13
+ ) !default;
14
+ $NAPPR_HEADINGS: (
15
+ h1: (
16
+ base: 2rem,
17
+ xl: 2.5rem,
18
+ ),
19
+ h2: (
20
+ base: 1.75rem,
21
+ xl: 2rem,
22
+ ),
23
+ h3: (
24
+ base: 1.5rem,
25
+ xl: 1.75rem,
26
+ ),
27
+ h4: (
28
+ base: 1.375rem,
29
+ xl: 1.5rem,
30
+ ),
31
+ h5: (
32
+ base: 1.25rem,
33
+ xl: 1.375rem,
34
+ ),
35
+ h6: (
36
+ base: 1.125rem,
37
+ xl: 1.25rem,
38
+ ),
39
+ ) !default;
@@ -0,0 +1,24 @@
1
+ @use '../themes/light' as light;
2
+ @use '../themes/dark' as dark;
3
+
4
+ $NAPPR_THEMES: (
5
+ 'dark-theme': dark.$theme,
6
+ 'light-theme': light.$theme,
7
+ 'theme-keys': (
8
+ 'background',
9
+ 'panel',
10
+ 'rollover',
11
+ 'accent',
12
+ 'border',
13
+ 'text-primary',
14
+ 'text-secondary',
15
+ 'text-disabled',
16
+ 'text-hover-bg',
17
+ 'text-active-bg',
18
+ 'state-success',
19
+ 'state-warning',
20
+ 'state-error',
21
+ 'state-info',
22
+ 'state-debug',
23
+ ),
24
+ ) !default;
@@ -0,0 +1,43 @@
1
+ // ----------------------------------
2
+ // Imports
3
+ // ----------------------------------
4
+ @forward 'sass:list';
5
+ @use 'sass:math' as math;
6
+ @use 'sass:list' as list;
7
+
8
+ // ----------------------------------
9
+ // Functions
10
+ // ----------------------------------
11
+
12
+ /**
13
+ * Generate a list of numbers with a given min and max value
14
+ * @param {number} $min - The minimum value of the list
15
+ * @param {number} $max - The maximum value of the list
16
+ * @return {list} - The list of numbers
17
+ */
18
+ @function iterate($min, $max) {
19
+ $result: ();
20
+
21
+ @for $i from $min through $max {
22
+ $result: list.append($result, $i);
23
+ }
24
+
25
+ @return $result;
26
+ }
27
+
28
+ /**
29
+ * Generate a list of numbers with a given step and max value
30
+ * @param {number} $step - The step between each number
31
+ * @param {number} $max-value - The maximum value of the list
32
+ * @return {list} - The list of numbers
33
+ */
34
+ @function steps($step, $max-value) {
35
+ $list: 0;
36
+
37
+ @for $i from 1 through math.floor(math.div($max-value, $step)) {
38
+ $value: $i * $step;
39
+ $list: list.append($list, $value);
40
+ }
41
+
42
+ @return $list;
43
+ }