@nappr/nappr-styles 0.3.2 → 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.
Files changed (124) hide show
  1. package/README.md +33 -20
  2. package/dist/styles.css +7462 -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 +48 -14
  18. package/sass/_globals.module.scss +43 -0
  19. package/sass/_globals.scss +78 -0
  20. package/sass/components/_.scss +1 -0
  21. package/sass/components/_badge.scss +58 -0
  22. package/sass/components/_button.scss +212 -0
  23. package/sass/components/scrollbar/_.scss +102 -0
  24. package/sass/configs/_.scss +7 -0
  25. package/sass/configs/_breakpoints.scss +12 -0
  26. package/sass/configs/_defaults.scss +6 -0
  27. package/sass/configs/_grid.scss +8 -0
  28. package/sass/configs/_palettes.scss +72 -0
  29. package/sass/configs/_spacing.scss +36 -0
  30. package/sass/configs/_text.scss +41 -0
  31. package/sass/configs/_themes.scss +24 -0
  32. package/sass/core/funcs/_list.scss +43 -0
  33. package/sass/core/funcs/_map.scss +42 -0
  34. package/sass/core/funcs/_math.scss +35 -0
  35. package/sass/core/funcs/_string.scss +47 -0
  36. package/sass/core/mixins/_.scss +3 -0
  37. package/{lib → sass/core}/mixins/_links.scss +2 -2
  38. package/sass/core/mixins/_media-queries.scss +22 -0
  39. package/sass/core/mixins/_typography.scss +26 -0
  40. package/sass/core/placeholders/_.scss +4 -0
  41. package/sass/core/placeholders/_dimensions.scss +16 -0
  42. package/sass/core/placeholders/_flexbox.scss +11 -0
  43. package/sass/core/placeholders/_lists.scss +41 -0
  44. package/sass/core/placeholders/_positions.scss +19 -0
  45. package/sass/core/placeholders/_typography.scss +10 -0
  46. package/sass/elements/_.scss +6 -0
  47. package/sass/elements/_dialog.scss +13 -0
  48. package/{lib/htmls → sass/elements}/_form.scss +28 -6
  49. package/sass/elements/_links.scss +21 -0
  50. package/sass/elements/_lists.scss +11 -0
  51. package/{lib/htmls → sass/elements}/_table.scss +2 -6
  52. package/sass/elements/_typography.scss +13 -0
  53. package/sass/layout/grid/_.scss +4 -0
  54. package/sass/layout/grid/_columns.scss +32 -0
  55. package/sass/layout/grid/_gaps.scss +42 -0
  56. package/sass/layout/grid/_grid.scss +130 -0
  57. package/sass/layout/grid/_offsets.scss +35 -0
  58. package/sass/main.scss +59 -0
  59. package/sass/resets/_.scss +5 -0
  60. package/sass/resets/_base.scss +69 -0
  61. package/sass/resets/_nappr.scss +82 -0
  62. package/sass/themes/_dark.scss +17 -0
  63. package/sass/themes/_dracula.scss +17 -0
  64. package/sass/themes/_github-light.scss +17 -0
  65. package/sass/themes/_light.scss +17 -0
  66. package/sass/themes/_monokai-pro.scss +17 -0
  67. package/sass/themes/_night-owl.scss +17 -0
  68. package/sass/themes/_nord.scss +17 -0
  69. package/sass/themes/_tokyo-night.scss +17 -0
  70. package/sass/utilities/_.scss +21 -0
  71. package/sass/utilities/_dimensions.scss +11 -0
  72. package/sass/utilities/_displays.scss +111 -0
  73. package/sass/utilities/_flexbox.scss +81 -0
  74. package/{lib/helpers → sass/utilities}/_floats.scss +10 -13
  75. package/sass/utilities/_lists.scss +86 -0
  76. package/sass/utilities/_negates.scss +121 -0
  77. package/sass/utilities/_palette.scss +11 -0
  78. package/sass/utilities/_scrolls.scss +67 -0
  79. package/sass/utilities/_spacers.scss +120 -0
  80. package/sass/utilities/_square-grid.scss +33 -0
  81. package/sass/utilities/_typography.scss +106 -0
  82. package/sass/utilities/_visibility.scss +60 -0
  83. package/sass/utilities/_wrap.scss +12 -0
  84. package/styles.scss +5 -1
  85. package/lib/_globals.scss +0 -16
  86. package/lib/_reset.scss +0 -223
  87. package/lib/customs/scrollbar.scss +0 -40
  88. package/lib/funcs/_.scss +0 -5
  89. package/lib/funcs/_get-color.scss +0 -3
  90. package/lib/funcs/_math.scss +0 -5
  91. package/lib/funcs/_merge-palette.scss +0 -12
  92. package/lib/funcs/_rem.scss +0 -104
  93. package/lib/funcs/_strings.scss +0 -35
  94. package/lib/grid/_.scss +0 -4
  95. package/lib/grid/_col.scss +0 -117
  96. package/lib/grid/_row.scss +0 -117
  97. package/lib/grid/_square.scss +0 -34
  98. package/lib/grid/_wrap.scss +0 -39
  99. package/lib/helpers/_.scss +0 -9
  100. package/lib/helpers/_displays.scss +0 -151
  101. package/lib/helpers/_flexbox.scss +0 -105
  102. package/lib/helpers/_margins.scss +0 -13
  103. package/lib/helpers/_negates.scss +0 -171
  104. package/lib/helpers/_scrolls.scss +0 -55
  105. package/lib/helpers/_texts.scss +0 -101
  106. package/lib/helpers/_visibility.scss +0 -34
  107. package/lib/htmls/_.scss +0 -4
  108. package/lib/htmls/_headings.scss +0 -29
  109. package/lib/htmls/_links.scss +0 -11
  110. package/lib/mixins/_.scss +0 -9
  111. package/lib/mixins/_border-radius.scss +0 -61
  112. package/lib/mixins/_border.scss +0 -48
  113. package/lib/mixins/_dimensions.scss +0 -48
  114. package/lib/mixins/_font-size.scss +0 -22
  115. package/lib/mixins/_line-height.scss +0 -19
  116. package/lib/mixins/_margin-padding.scss +0 -66
  117. package/lib/mixins/_root-variables.scss +0 -11
  118. package/lib/mixins/_theme.scss +0 -25
  119. package/lib/styles.scss +0 -19
  120. package/lib/variables/_.scss +0 -4
  121. package/lib/variables/_breakpoints.scss +0 -5
  122. package/lib/variables/_colors.scss +0 -60
  123. package/lib/variables/_defaults.scss +0 -53
  124. /package/{lib/helpers → sass/utilities}/_pointers.scss +0 -0
@@ -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,8 @@
1
+ $NAPPR_GRID: (
2
+ 'columns': 12,
3
+ 'max-width': 1200px,
4
+ 'gutter-gap-sm': 1rem,
5
+ 'gutter-gap-md': 1rem,
6
+ 'gutter-gap-lg': 1.5rem,
7
+ 'gutter-gap-xl': 1.5rem,
8
+ ) !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,41 @@
1
+ $NAPPR_TEXT: (
2
+ 'font-size': 1rem,
3
+ 'font-family': 'Helvetica, Arial, Verdana, sans-serif',
4
+ 'font-family--alt': '"Spectral", Georgia, serif',
5
+ 'weights': (
6
+ 'light': 300,
7
+ 'regular': 400,
8
+ 'medium': 500,
9
+ 'bold': 700,
10
+ ),
11
+ 'weight': 400,
12
+ 'weight--alt': 500,
13
+ 'line-height': 1.5rem,
14
+ 'spacing': 0 0 1.5rem 0,
15
+ ) !default;
16
+ $NAPPR_HEADINGS: (
17
+ h1: (
18
+ base: 2rem,
19
+ xl: 2.5rem,
20
+ ),
21
+ h2: (
22
+ base: 1.75rem,
23
+ xl: 2rem,
24
+ ),
25
+ h3: (
26
+ base: 1.5rem,
27
+ xl: 1.75rem,
28
+ ),
29
+ h4: (
30
+ base: 1.375rem,
31
+ xl: 1.5rem,
32
+ ),
33
+ h5: (
34
+ base: 1.25rem,
35
+ xl: 1.375rem,
36
+ ),
37
+ h6: (
38
+ base: 1.125rem,
39
+ xl: 1.25rem,
40
+ ),
41
+ ) !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
+ }
@@ -0,0 +1,42 @@
1
+ // ----------------------------------
2
+ // Imports
3
+ // ----------------------------------
4
+ @forward 'sass:map';
5
+ @use 'sass:map' as map;
6
+ @use 'sass:list' as list;
7
+ @use 'sass:math' as math;
8
+
9
+ // ----------------------------------
10
+ // Functions
11
+ // ----------------------------------
12
+
13
+ /**
14
+ * Generate a map by mirroring the values of a list
15
+ * @param {list} $list - The list to generate the map from
16
+ * @return {map} - The map of keys and values
17
+ */
18
+ @function mirror($list) {
19
+ $map: ();
20
+
21
+ @each $key in $list {
22
+ $map: map.set($map, $key, $key);
23
+ }
24
+
25
+ @return $map;
26
+ }
27
+
28
+ /**
29
+ * Generate a map of numbers with the index of each value in a map
30
+ * @param {map} $map - The map to generate the list from
31
+ * @return {list} - The list of numbers
32
+ */
33
+ @function each-index($list) {
34
+ $next: ();
35
+
36
+ @each $value in $list {
37
+ $i: list.index($list, $value);
38
+ $next: map.set($next, $i, $value);
39
+ }
40
+
41
+ @return $next;
42
+ }
@@ -0,0 +1,35 @@
1
+ // ----------------------------------
2
+ // Imports
3
+ // ----------------------------------
4
+ @forward 'sass:math';
5
+
6
+ // ----------------------------------
7
+ // Functions
8
+ // ----------------------------------
9
+ @function number-to-pixel($size: 0) {
10
+ @return ($size * 1px);
11
+ }
12
+
13
+ @function number-to-percent($size: 0) {
14
+ @return ($size * 1%);
15
+ }
16
+
17
+ @function number-to-rem($size: 0) {
18
+ @return ($size * 1rem);
19
+ }
20
+
21
+ @function number-to-em($size: 0) {
22
+ @return ($size * 1em);
23
+ }
24
+
25
+ @function number-to-vh($size: 0) {
26
+ @return ($size * 1vh);
27
+ }
28
+
29
+ @function number-to-vw($size: 0) {
30
+ @return ($size * 1vw);
31
+ }
32
+
33
+ @function calculate-line-height($font-size-rem) {
34
+ @return $font-size-rem + 0.5rem;
35
+ }
@@ -0,0 +1,47 @@
1
+ // ----------------------------------
2
+ // Imports
3
+ // ----------------------------------
4
+ @forward 'sass:string';
5
+ @use 'sass:list' as list;
6
+ @use 'sass:string' as string;
7
+
8
+ // ----------------------------------
9
+ // Functions
10
+ // ----------------------------------
11
+ @function concat($string1, $string2) {
12
+ @return '#{$string1}#{$string2}';
13
+ }
14
+
15
+ @function contains($list, $value) {
16
+ @return not not list.index($list, $value);
17
+ }
18
+
19
+ @function capitalize($string) {
20
+ @return string.to-upper-case(string.slice($string, 1, 1)) +
21
+ string.slice($string, 2);
22
+ }
23
+
24
+ @function uncapitalize($string) {
25
+ @return string.to-lower-case(string.slice($string, 1, 1)) +
26
+ string.slice($string, 2);
27
+ }
28
+
29
+ @function camelize($string) {
30
+ $progress: string.to-lower-case($string);
31
+ $result: '';
32
+ $exclude: ' ', '-', '–', '—', '_', ',', ';', ':', '.';
33
+
34
+ @while list.length($progress) > 0 {
35
+ $char: string.slice($progress, 1, 1);
36
+
37
+ @if contains($exclude, $char) {
38
+ $progress: capitalize(string.slice($progress, 2, 2)) +
39
+ string.slice($progress, 3);
40
+ } @else {
41
+ $result: $result + $char;
42
+ $progress: string.slice($progress, 2);
43
+ }
44
+ }
45
+
46
+ @return $result;
47
+ }
@@ -0,0 +1,3 @@
1
+ @forward 'links';
2
+ @forward 'media-queries';
3
+ @forward 'typography';
@@ -1,6 +1,6 @@
1
1
  // NOTE
2
- // a: hover DOIT venir après: lien et a: visited
3
- // a: active doit venir après un: hover
2
+ // a:hover MUST come after: link and a:visited
3
+ // a:active must come after a:hover
4
4
  @mixin as-link($color) {
5
5
  &,
6
6
  &:link,
@@ -0,0 +1,22 @@
1
+ @use '../funcs/map' as map;
2
+ @use '../../configs/' as configs;
3
+
4
+ @mixin media-query($key, $condition) {
5
+ $value: map.get(configs.$NAPPR_BREAKPOINTS, $key);
6
+
7
+ @media (#{$condition}-width: #{$value}) {
8
+ @content;
9
+ }
10
+ }
11
+
12
+ @mixin media-query-min($breakpoint-key) {
13
+ @include media-query($breakpoint-key, 'min') {
14
+ @content;
15
+ }
16
+ }
17
+
18
+ @mixin media-query-max($breakpoint-key) {
19
+ @include media-query($breakpoint-key, 'max') {
20
+ @content;
21
+ }
22
+ }
@@ -0,0 +1,26 @@
1
+ @use '../placeholders/' as *;
2
+ @use '../funcs/map' as map;
3
+ @use '../funcs/math' as math;
4
+ @use 'media-queries' as media-queries;
5
+
6
+ @mixin generate-heading-styles($map, $prefix: '') {
7
+ @each $key, $values in $map {
8
+ $selector: if($prefix == '', #{$key}, '#{$prefix}-#{$key}');
9
+
10
+ #{$selector} {
11
+ @extend %heading-base;
12
+
13
+ $fs-base: map.get($values, 'base');
14
+
15
+ font-size: $fs-base;
16
+ line-height: math.calculate-line-height($fs-base);
17
+
18
+ @include media-queries.media-query-min('xl') {
19
+ $fs-xl: map.get($values, 'xl');
20
+
21
+ font-size: $fs-xl;
22
+ line-height: math.calculate-line-height($fs-xl);
23
+ }
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,4 @@
1
+ @forward 'dimensions';
2
+ @forward 'flexbox';
3
+ @forward 'positions';
4
+ @forward 'typography';
@@ -0,0 +1,16 @@
1
+ %is-full-width {
2
+ max-width: 100%;
3
+ min-width: 100%;
4
+ width: 100%;
5
+ }
6
+
7
+ %is-full-height {
8
+ height: 100%;
9
+ max-height: 100%;
10
+ min-height: 100%;
11
+ }
12
+
13
+ %is-full-layout {
14
+ @extend %is-full-width;
15
+ @extend %is-full-height;
16
+ }
@@ -0,0 +1,11 @@
1
+ %flex-base {
2
+ display: flex;
3
+ flex: 1;
4
+ }
5
+
6
+ %flex-wrapper {
7
+ @extend %flex-base;
8
+
9
+ flex-flow: row wrap;
10
+ justify-content: space-between;
11
+ }
@@ -0,0 +1,41 @@
1
+ %nappr-list-base {
2
+ --nappr-xl-size: var(--nappr-xl-base);
3
+
4
+ margin: 0;
5
+ margin-block: 0;
6
+ padding: 0;
7
+ padding-inline-start: 0;
8
+ }
9
+
10
+ %nappr-list-item-base {
11
+ --nappr-xl-base: calc(var(--nappr-xl-size) * 0.9);
12
+
13
+ padding-bottom: 0;
14
+ }
15
+
16
+ %nappr-list-type--unstyled {
17
+ @extend %nappr-list-base;
18
+
19
+ list-style-type: none;
20
+
21
+ li,
22
+ dt,
23
+ dd {
24
+ @extend %nappr-list-item-base;
25
+ }
26
+ }
27
+
28
+ %nappr-list-type--styled {
29
+ @extend %nappr-list-base;
30
+
31
+ margin-block: 0.5rem;
32
+ padding-inline-start: 1rem;
33
+
34
+ li,
35
+ dt,
36
+ dd {
37
+ @extend %nappr-list-item-base;
38
+
39
+ padding-bottom: 0.25rem;
40
+ }
41
+ }
@@ -0,0 +1,19 @@
1
+ %position-absolute {
2
+ position: absolute;
3
+ }
4
+
5
+ %position-fixed {
6
+ position: fixed;
7
+ }
8
+
9
+ %position-relative {
10
+ position: relative;
11
+ }
12
+
13
+ %position-sticky {
14
+ position: sticky;
15
+ }
16
+
17
+ %is-all-edges {
18
+ inset: 0;
19
+ }
@@ -0,0 +1,10 @@
1
+ %heading-base {
2
+ font-weight: 700;
3
+ margin: var(--nappr-text-spacing);
4
+ }
5
+
6
+ %text-base {
7
+ font-size: 1rem;
8
+ line-height: 1.5rem;
9
+ margin: var(--nappr-text-spacing);
10
+ }
@@ -0,0 +1,6 @@
1
+ @use './dialog';
2
+ @use './form';
3
+ @use './links';
4
+ @use './lists';
5
+ @use './table';
6
+ @use './typography';
@@ -0,0 +1,13 @@
1
+ dialog {
2
+ backdrop-filter: blur(5px);
3
+
4
+ &::backdrop {
5
+ backdrop-filter: blur(5px);
6
+ opacity: 0;
7
+ transition: opacity 0.3s ease-out;
8
+ }
9
+
10
+ &[open]::backdrop {
11
+ opacity: 1;
12
+ }
13
+ }