@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
@@ -1,12 +1,12 @@
1
1
  ## Font Size
2
2
 
3
- > Les tailles des fonts sont à définir par la variable sass `$FontSizes`
3
+ > Les tailles des fonts sont à définir par la variable sass `$NAPPR_FONT_SIZES_MAP`
4
4
 
5
- ```css
6
- $FontSizes: (6, 8, 9, 12, 26, 24);
5
+ ```scss
6
+ $NAPPR_FONT_SIZES_MAP: (6, 8, 9, 12, 24, 26) !default;
7
7
  ```
8
8
 
9
- **Example en utilisant classe `.fs24`**
9
+ **Exemple en utilisant la classe `.fs24`**
10
10
 
11
11
  ```html
12
12
  <span class="fs24">Font size: 24px</span>
@@ -14,10 +14,10 @@ $FontSizes: (6, 8, 9, 12, 26, 24);
14
14
 
15
15
  ## Margin / Padding
16
16
 
17
- > Les tailles des margin/padding sont à définir par la variable sass `$MarginPaddingSizes`
17
+ > Les tailles des margin/padding sont à définir par la variable sass `$NAPPR_SPACINGS_MAP`
18
18
 
19
- ```css
20
- $MarginPadding: (6, 8, 9, 12, 26, 24);
19
+ ```scss
20
+ $NAPPR_SPACINGS_MAP: (3, 6, 9, 12, 18, 24, 48) !default;
21
21
  ```
22
22
 
23
23
  > Il est alors possible d'ajouter du margin/padding sur :
@@ -26,7 +26,7 @@ $MarginPadding: (6, 8, 9, 12, 26, 24);
26
26
  > - les 2 axes `.my(n) .mx(n)`
27
27
  > - les 4 directions `.mt(n), .mr(n), .mb(n), .ml(n)`
28
28
 
29
- **L'example ci-dessous ajoute un padding de 24px sur la position top d'un bloc**
29
+ **L'exemple ci-dessous ajoute un padding de 24px sur la position top d'un bloc**
30
30
 
31
31
  ```html
32
32
  <div class="pt24">padding-top: 24px;</div>
@@ -34,12 +34,12 @@ $MarginPadding: (6, 8, 9, 12, 26, 24);
34
34
 
35
35
  ## Borders
36
36
 
37
- > Le type de bordure est à définir par la variable `$BorderStyle`
38
- > Les tailles des bordures sont à définir par la variable sass `$BorderSizes`
37
+ > Le type de bordure est à définir par la variable `$NAPPR_BORDER_STYLE`
38
+ > Les tailles des bordures sont à définir par la variable sass `$NAPPR_BORDER_SIZE_MAP`
39
39
 
40
- ```css
41
- $BorderStyle: solid;
42
- $BorderSizes: (1, 2, 3);
40
+ ```scss
41
+ $NAPPR_BORDER_STYLE: solid !default;
42
+ $NAPPR_BORDER_SIZE_MAP: (1, 2, 3) !default;
43
43
  ```
44
44
 
45
45
  > Il est alors possible d'ajouter des bordures sur :
@@ -48,7 +48,7 @@ $BorderSizes: (1, 2, 3);
48
48
  > - les 2 axes `.bx(n) .by(n)`
49
49
  > - les 4 directions `.bt(n), .br(n), .bb(n), .bl(n)`
50
50
 
51
- **L'example ci-dessous ajoute une bordure de 2px sur les positions top et bottom d'un bloc**
51
+ **L'exemple ci-dessous ajoute une bordure de 2px sur les positions top et bottom d'un bloc**
52
52
 
53
53
  ```html
54
54
  <div class="by2" style="border-color: #CCCCCCCC;">
@@ -58,10 +58,10 @@ $BorderSizes: (1, 2, 3);
58
58
 
59
59
  ## Border Radius
60
60
 
61
- > Les arrondis de bordures sont à définir par la variable sass `$BorderRadiusSizes`.
61
+ > Les arrondis de bordures sont à définir par la variable sass `$NAPPR_BORDER_RADIUS_MAP`.
62
62
 
63
- ```css
64
- $BorderRadiusSizes: (2, 3, 4, 8, 10, 12);
63
+ ```scss
64
+ $NAPPR_BORDER_RADIUS_MAP: (2, 3, 4, 8, 10, 12) !default;
65
65
  ```
66
66
 
67
67
  > Il est alors possible d'ajouter des angles arrondis à un bloc sur :
@@ -69,10 +69,22 @@ $BorderRadiusSizes: (2, 3, 4, 8, 10, 12);
69
69
  > - la totalité d'un bloc `.brad(n)`
70
70
  > - les 4 directions `.bradt(n), .bradr(n), .bradb(n), .bradl(n)`
71
71
 
72
- **L'example ci-dessous ajoute un angle arrondi de 2px sur le haut d'un bloc**
72
+ **L'exemple ci-dessous ajoute un angle arrondi de 2px sur le haut d'un bloc**
73
73
 
74
74
  ```html
75
75
  <div class="bradt2" style="border-color: #CCCCCC;">
76
76
  <span>Lorem ipsum</span>
77
77
  </div>
78
78
  ```
79
+
80
+ ## Deprecated
81
+
82
+ > ⚠️ **Version 1.0.0** : Les variables suivantes ont été renommées.
83
+
84
+ | Ancienne variable | Nouvelle variable |
85
+ |-------------------|-------------------|
86
+ | `$FontSizes` | `$NAPPR_FONT_SIZES_MAP` |
87
+ | `$MarginPaddingSizes` | `$NAPPR_SPACINGS_MAP` |
88
+ | `$BorderStyle` | `$NAPPR_BORDER_STYLE` |
89
+ | `$BorderSizes` | `$NAPPR_BORDER_SIZE_MAP` |
90
+ | `$BorderRadiusSizes` | `$NAPPR_BORDER_RADIUS_MAP` |
@@ -1,26 +1,112 @@
1
- # Napper Styles (SASS/CSS)
1
+ # Quick Start
2
2
 
3
- > A collection of CSS/SCSS helpers
3
+ > Guide de démarrage rapide pour utiliser @nappr/nappr-styles
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
- git clone git@github.com:sixertoy/napper-styles.git
8
+ yarn add https://github.com/sixertoy/nappr-styles.git#latest
9
9
  ```
10
10
 
11
- ## Variables
11
+ ## Configuration
12
12
 
13
- ```sass
14
- $body-width: 100% !default;
15
- $body-font-size: 16px !default;
16
- $default-padding: 12px !default;
13
+ Créez un fichier `variables.scss` pour personnaliser les variables :
17
14
 
18
- $BorderStyle: solid;
19
- $BorderSizes: () !default;
20
- $BorderRadiusSizes: () !default;
15
+ ```scss
16
+ // Configuration principale
17
+ $NAPPR_BODY_FONT_SIZE: 16px !default;
18
+ $NAPPR_BODY_WIDTH: 100vw !default;
19
+ $NAPPR_DEFAULT_SPACING: 12px !default;
21
20
 
22
- $FontSizes: () !default;
21
+ // Tailles de police
22
+ $NAPPR_FONT_SIZES_MAP: (11, 12, 14, 16) !default;
23
23
 
24
- $default-padding: 12px !default;
25
- $MarginPaddingSizes: (3, 6, 9, 12, 18, 24, 48) !default;
24
+ // Espacements
25
+ $NAPPR_SPACINGS_MAP: (3, 6, 9, 12, 18, 24, 48) !default;
26
+
27
+ // Dimensions
28
+ $NAPPR_DIMENSIONS_MAP: (25, 50, 75, 100) !default;
29
+
30
+ // Bordures
31
+ $NAPPR_BORDER_STYLE: solid !default;
32
+ $NAPPR_BORDER_SIZE_MAP: (1, 2, 3) !default;
33
+ $NAPPR_BORDER_RADIUS_MAP: (4, 8, 12) !default;
34
+ ```
35
+
36
+ ## Utilisation
37
+
38
+ Importez les styles dans votre fichier principal :
39
+
40
+ ```scss
41
+ @use './variables.scss' as *;
42
+ @use '@nappr/nappr-styles/styles.scss' as *;
43
+ ```
44
+
45
+ ## Exemple complet
46
+
47
+ ```scss
48
+ // variables.scss
49
+ $NAPPR_BODY_FONT_SIZE: 16px !default;
50
+ $NAPPR_FONT_SIZES_MAP: (12, 14, 16, 24) !default;
51
+ $NAPPR_SPACINGS_MAP: (6, 12, 18, 24) !default;
52
+
53
+ // main.scss
54
+ @use './variables.scss' as *;
55
+ @use '@nappr/nappr-styles/styles.scss' as *;
56
+
57
+ .my-component {
58
+ @extend .fs16;
59
+ @extend .m12;
60
+ @extend .p6;
61
+ }
26
62
  ```
63
+
64
+ ## Deprecated
65
+
66
+ > ⚠️ **Version 1.0.0** : Les éléments suivants ont été supprimés.
67
+
68
+ ### Variables deprecated
69
+
70
+ | Ancienne variable | Nouvelle variable |
71
+ |-------------------|-------------------|
72
+ | `$body-width` | `$NAPPR_BODY_WIDTH` |
73
+ | `$body-font-size` | `$NAPPR_BODY_FONT_SIZE` |
74
+ | `$default-spacing` | `$NAPPR_DEFAULT_SPACING` |
75
+ | `$font-sizes-map` | `$NAPPR_FONT_SIZES_MAP` |
76
+ | `$spacings-map` | `$NAPPR_SPACINGS_MAP` |
77
+ | `$border-style` | `$NAPPR_BORDER_STYLE` |
78
+ | `$border-size-map` | `$NAPPR_BORDER_SIZE_MAP` |
79
+ | `$border-radius-map` | `$NAPPR_BORDER_RADIUS_MAP` |
80
+
81
+ ### Syntaxe deprecated
82
+
83
+ ```scss
84
+ // ❌ Ancienne syntaxe (deprecated)
85
+ @import './_variables.scss';
86
+ @import '~@nappr/nappr-styles/styles.scss';
87
+
88
+ // ✅ Nouvelle syntaxe
89
+ @use './variables.scss' as *;
90
+ @use '@nappr/nappr-styles/styles.scss' as *;
91
+ ```
92
+
93
+ ### Grille deprecated
94
+
95
+ Les anciennes classes `.columns` et `.rows` (basées sur flexbox) ont été supprimées. Utilisez le nouveau système de grille CSS Grid :
96
+
97
+ ```scss
98
+ // ❌ Deprecated
99
+ .columns .col-50 { ... }
100
+
101
+ // ✅ Nouvelle syntaxe
102
+ .nappr-grid .nappr-grid-col-6 { ... }
103
+ ```
104
+
105
+ ## Migration
106
+
107
+ Pour migrer votre code vers la version 1.0.0+ :
108
+
109
+ 1. **Remplacez toutes les variables** : Utilisez les variables en MAJUSCULES préfixées avec `NAPPR_`
110
+ 2. **Remplacez `@import` par `@use`** : Utilisez la syntaxe moderne des modules Sass
111
+ 3. **Configuration rem** : Si vous utilisiez `$rem-baseline`, `$rem-fallback` ou `$rem-px-only`, configurez directement `sass-rem` dans votre projet
112
+ 4. **Migrez vers la nouvelle grille** : Remplacez `.columns`/`.rows` par `.nappr-grid` et `.nappr-grid-col-*`
package/docs/temp.scss ADDED
@@ -0,0 +1,122 @@
1
+ // ==============================================
2
+ // 1. Variables : Polices et Couleurs (Basé sur le DSFR)
3
+ // ==============================================
4
+
5
+ // Polices
6
+ $font-marianne: 'Marianne', arial, sans-serif;
7
+ $font-spectral: 'Spectral', georgia, serif; // Utilisée pour les Displays selon la charte
8
+
9
+ // Couleurs (Tokens DSFR - à ajuster si besoin)
10
+ $color-text-default: #161616; // Couleur G800 sur fond clair
11
+ $color-text-inverted: #ffffff; // Couleur White sur fond foncé
12
+ $margin-bottom-heading: 1.5rem; // 24px/16 = 1.5rem (pour h1-h6)
13
+ $margin-bottom-display: 2rem; // 32px/16 = 2rem (pour les displays)
14
+
15
+ // Variables de taille de police (À REMPLACER PAR LES VALEURS EXACTES DU DSFR)
16
+ // Ces valeurs sont indicatives et doivent être vérifiées dans la documentation DSFR
17
+ $h1-font-size: 2.5rem; // Ex: 40px
18
+ $h2-font-size: 2rem; // Ex: 32px
19
+ $h3-font-size: 1.75rem; // Ex: 28px
20
+ $h4-font-size: 1.5rem; // Ex: 24px
21
+ $h5-font-size: 1.25rem; // Ex: 20px
22
+ $h6-font-size: 1rem; // Ex: 16px
23
+
24
+ $display-xl-font-size: 4rem; // Très grand display
25
+ $display-lg-font-size: 3rem; // Grand display
26
+ $display-md-font-size: 2.5rem; // Display moyen
27
+
28
+ // ==============================================
29
+ // 2. Mixin pour styliser un titre
30
+ // ==============================================
31
+
32
+ @mixin heading-style(
33
+ $font-size,
34
+ $font-weight: 700,
35
+ $font-family: $font-marianne,
36
+ $margin-bottom: $margin-bottom-heading
37
+ ) {
38
+ color: $color-text-default;
39
+ font-family: $font-family;
40
+ font-size: $font-size;
41
+ font-weight: $font-weight;
42
+ line-height: 1.2; // Ligne de hauteur à vérifier dans le DSFR
43
+ margin-bottom: $margin-bottom;
44
+ margin-top: 0; // Réinitialise la marge supérieure
45
+
46
+ // Style pour le mode sombre ou fond coloré
47
+ .fr-scheme-dark &,
48
+ .fr-background-alt & {
49
+ color: $color-text-inverted;
50
+ }
51
+ }
52
+
53
+ // ==============================================
54
+ // 3. Application des styles aux balises HTML (H1 à H6)
55
+ // ==============================================
56
+
57
+ h1 {
58
+ @include heading-style($h1-font-size, 700); // Généralement Bold
59
+ }
60
+
61
+ h2 {
62
+ @include heading-style($h2-font-size, 700);
63
+ }
64
+
65
+ h3 {
66
+ @include heading-style($h3-font-size, 700);
67
+ }
68
+
69
+ h4 {
70
+ @include heading-style($h4-font-size, 700);
71
+ }
72
+
73
+ h5 {
74
+ @include heading-style($h5-font-size, 700);
75
+ }
76
+
77
+ h6 {
78
+ @include heading-style($h6-font-size, 700);
79
+ }
80
+
81
+ // ==============================================
82
+ // 4. Titres Alternatifs (Display)
83
+ // ==============================================
84
+
85
+ // Les displays utilisent souvent la police Spectral et un poids plus lourd
86
+ .fr-display--xl {
87
+ @include heading-style(
88
+ $display-xl-font-size,
89
+ 800,
90
+ $font-spectral,
91
+ $margin-bottom-display
92
+ );
93
+ }
94
+
95
+ .fr-display--lg {
96
+ @include heading-style(
97
+ $display-lg-font-size,
98
+ 800,
99
+ $font-spectral,
100
+ $margin-bottom-display
101
+ );
102
+ }
103
+
104
+ .fr-display--md {
105
+ @include heading-style(
106
+ $display-md-font-size,
107
+ 800,
108
+ $font-spectral,
109
+ $margin-bottom-display
110
+ );
111
+ }
112
+
113
+ // Classe pour réinitialiser le style de titre (si besoin)
114
+ .fr-text--lead {
115
+ font-family: $font-marianne;
116
+
117
+ // Style spécifique pour un texte d'introduction
118
+ font-size: 1.25rem;
119
+ font-weight: 400;
120
+
121
+ // Autres styles...
122
+ }
package/index.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Type definitions for @nappr/nappr-styles
3
+ *
4
+ * Provides TypeScript support for importing CSS and SCSS files.
5
+ */
6
+
7
+ declare module '*.css' {
8
+ const content: string;
9
+ export default content;
10
+ }
11
+
12
+ declare module '*.scss' {
13
+ const content: { [className: string]: string };
14
+ export default content;
15
+ }
16
+
17
+ declare module '*.module.css' {
18
+ const classes: { [key: string]: string };
19
+ export default classes;
20
+ }
21
+
22
+ declare module '*.module.scss' {
23
+ const classes: { [key: string]: string };
24
+ export default classes;
25
+ }
package/package.json CHANGED
@@ -1,35 +1,70 @@
1
1
  {
2
2
  "name": "@nappr/nappr-styles",
3
- "version": "0.3.2",
3
+ "version": "0.3.5",
4
4
  "description": "A collection of SCSS helpers",
5
- "main": "./styles.scss",
6
- "browser": "./dist/styles.css",
5
+ "main": "./dist/styles.min.css",
6
+ "browser": "./dist/styles.min.css",
7
+ "style": "./dist/styles.min.css",
8
+ "types": "./index.d.ts",
9
+ "sass": "./styles.scss",
7
10
  "homepage": "https://sixertoy.github.io/nappr-styles",
8
- "repository": "https://github.com/sixertoy/nappr-styles",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/sixertoy/nappr-styles.git"
14
+ },
9
15
  "author": "sixertoy <sixertoy.github@gmail.com>",
10
16
  "license": "ISC",
17
+ "keywords": [
18
+ "scss",
19
+ "sass",
20
+ "css",
21
+ "styles",
22
+ "helpers",
23
+ "utilities",
24
+ "nappr"
25
+ ],
26
+ "engines": {
27
+ "node": ">=14.0.0"
28
+ },
11
29
  "files": [
12
- "lib",
30
+ "sass",
13
31
  "dist",
14
32
  "docs",
15
33
  "styles.scss",
16
- "variables.module.scss"
34
+ "styles.module.scss",
35
+ "*.d.ts"
17
36
  ],
18
37
  "devDependencies": {
38
+ "cssnano": "^7.1.2",
39
+ "cssnano-preset-advanced": "^7.0.10",
19
40
  "docsify": "^4.13.1",
20
41
  "docsify-cli": "^4.4.4",
21
- "prettier": "^3.3.2",
42
+ "postcss": "^8.5.6",
43
+ "postcss-cli": "^11.0.1",
44
+ "postcss-scss": "^4.0.9",
45
+ "postcss-sort-media-queries": "^5.2.0",
46
+ "prettier": "^3.6.2",
22
47
  "prettier-stylelint": "0.4.2",
23
- "sass": "^1.77.6",
24
- "stylelint": "^16.6.1",
25
- "stylelint-config-standard": "^38.0.0",
48
+ "stylelint": "^16.25.0",
49
+ "stylelint-config-standard": "^39.0.1",
50
+ "stylelint-config-standard-scss": "^16.0.0",
26
51
  "stylelint-order": "^7.0.0",
27
- "stylelint-scss": "^6.3.2"
52
+ "stylelint-scss": "^6.12.1"
53
+ },
54
+ "dependencies": {
55
+ "sass": "^1.93.3",
56
+ "sass-rem": "^4.0.0"
28
57
  },
29
58
  "scripts": {
30
- "cleanup": "rm -rf node_modules",
59
+ "cleanup": "rm -rf node_modules dist",
31
60
  "docs": "docsify serve docs --port=2999",
32
- "dev": "sass --load-path=node_modules styles.scss",
33
- "build": "./.scripts/build.sh"
61
+ "build": "./.scripts/build.sh",
62
+ "lint": "./.scripts/lint.sh",
63
+ "lint:fix": "./.scripts/lint.sh --fix",
64
+ "format": "./.scripts/format.sh",
65
+ "format:check": "./.scripts/format.sh --check",
66
+ "prepare": "yarn build",
67
+ "prepublishOnly": "yarn validate && yarn build",
68
+ "validate": "yarn lint && yarn format:check"
34
69
  }
35
70
  }
@@ -0,0 +1,43 @@
1
+ @use './configs/' as configs;
2
+ @use './core/funcs/string' as string;
3
+
4
+ // ==========================================================
5
+ // Mixins
6
+ // ==========================================================
7
+
8
+ /**
9
+ * Export module variables
10
+ * @param {Map} $map - Map containing the variables to export
11
+ * @return {Void}
12
+ */
13
+ @mixin export-moudles-variables($map) {
14
+ @each $token, $vars in $map {
15
+ $prefix: string.capitalize(string.camelize($token));
16
+
17
+ @each $key, $value in $vars {
18
+ $var: string.capitalize(string.camelize($key));
19
+
20
+ nappr#{$prefix}#{$var}: #{$value};
21
+ }
22
+ }
23
+ }
24
+
25
+ // ==========================================================
26
+ // Root variables
27
+ // ==========================================================
28
+ $ROOT_EXPORTS: (
29
+ '': configs.$NAPPR_DEFAULTS,
30
+ 'palette': configs.$NAPPR_PALETTES,
31
+ 'breakpoint': configs.$NAPPR_BREAKPOINTS,
32
+ 'theme': map.get(
33
+ configs.$NAPPR_THEMES,
34
+ map.get(configs.$NAPPR_DEFAULTS, 'default-theme')
35
+ ),
36
+ );
37
+
38
+ // ==========================================================
39
+ // Export module variables
40
+ // ==========================================================
41
+ :export {
42
+ @include export-moudles-variables(globals.$ROOT_EXPORTS);
43
+ }
@@ -0,0 +1,79 @@
1
+ @use 'sass:meta';
2
+ @use './configs/' as configs;
3
+ @use './core/funcs/map' as map;
4
+
5
+ // ==========================================================
6
+ // Mixins
7
+ // ==========================================================
8
+
9
+ // Génère les variables CSS personnalisées pour :root
10
+ // @param {Map} $map - Map contenant les configurations à exporter
11
+ // @param {String} $prefix - Préfixe pour les variables
12
+ @mixin generate-root-vars($map, $prefix: '') {
13
+ @each $key, $value in $map {
14
+ $is-map: meta.type-of($value) == 'map';
15
+
16
+ @if $is-map {
17
+ @include generate-root-vars($value, '#{$prefix}#{$key}');
18
+ } @else {
19
+ $name-prefix: if($prefix != '', '#{$prefix}-', '');
20
+ $var-name: '#{$name-prefix}#{$key}';
21
+
22
+ --nappr-#{$var-name}: #{$value};
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin generate-palette-variables($map) {
28
+ @each $key, $value in $map {
29
+ [data-color='#{$key}'] {
30
+ --nappr-data-color: #{$value};
31
+ }
32
+ }
33
+ }
34
+
35
+ // Génère les variables CSS personnalisées pour chaque thème
36
+ // @param {Map} $map - Map contenant les configurations de thèmes
37
+ @mixin generate-theme-variables($themes) {
38
+ @each $token, $map in $themes {
39
+ [data-theme='#{$token}'] {
40
+ @each $key, $value in $map {
41
+ --nappr-data-color: var(--nappr-palette-#{$token});
42
+ }
43
+ }
44
+ }
45
+ }
46
+
47
+ // ==========================================================
48
+ // Root variables
49
+ // ==========================================================
50
+ $ROOT_EXPORTS: (
51
+ '': configs.$NAPPR_DEFAULTS,
52
+ 'text': configs.$NAPPR_TEXT,
53
+ 'palette': configs.$NAPPR_PALETTES,
54
+ 'breakpoint': configs.$NAPPR_BREAKPOINTS,
55
+ 'grid': configs.$NAPPR_GRID,
56
+ 'spacing': configs.$NAPPR_SPACING,
57
+ 'theme': map.get(
58
+ configs.$NAPPR_THEMES,
59
+ map.get(configs.$NAPPR_DEFAULTS, 'default-theme')
60
+ ),
61
+ );
62
+ $ROOT_THEMES_EXPORTS: (
63
+ 'dark-theme': map.get(configs.$NAPPR_THEMES, 'dark-theme'),
64
+ 'light-theme': map.get(configs.$NAPPR_THEMES, 'light-theme'),
65
+ );
66
+
67
+ // ==========================================================
68
+ // Export root variables
69
+ // ==========================================================
70
+ :root {
71
+ // --- ROOT VARIABLES ---
72
+ @include generate-root-vars($ROOT_EXPORTS);
73
+ }
74
+
75
+ // --- THEME VARIABLES ---
76
+ @include generate-palette-variables(configs.$NAPPR_PALETTES);
77
+
78
+ // --- THEME VARIABLES ---
79
+ @include generate-theme-variables($ROOT_THEMES_EXPORTS);
@@ -0,0 +1,2 @@
1
+ @use './button' as *;
2
+ @use './nav' as *;
@@ -0,0 +1,58 @@
1
+ // ==========================================================
2
+ // BADGE COMPONENT
3
+ // ==========================================================
4
+
5
+ .badge {
6
+ align-items: center;
7
+ border-radius: 0.25rem;
8
+ display: inline-flex;
9
+ font-family: inherit;
10
+ font-weight: 500;
11
+ gap: 0.5rem;
12
+ line-height: var(--nappr-text-line-height);
13
+ text-align: center;
14
+ vertical-align: middle;
15
+ white-space: nowrap;
16
+
17
+ .icon {
18
+ align-items: center;
19
+ display: inline-flex;
20
+ flex-shrink: 0;
21
+ justify-content: center;
22
+ }
23
+
24
+ &.badge--icon-left {
25
+ .icon {
26
+ order: -1;
27
+ }
28
+ }
29
+ }
30
+
31
+ // ==========================================================
32
+ // BADGE SIZES
33
+ // ==========================================================
34
+
35
+ // // Medium size (default)
36
+ .badge,
37
+ .badge--md {
38
+ font-size: 0.875rem;
39
+ padding: 0.5rem 0.25rem;
40
+ }
41
+
42
+ // Small size
43
+ .badge--sm {
44
+ font-size: 0.75rem;
45
+ padding: 0.375rem 0.125rem;
46
+ }
47
+
48
+ // ==========================================================
49
+ // BADGE VARIANTS (STATUS COLORS)
50
+ // ==========================================================
51
+ // Uses theme variables for dynamic theming support
52
+
53
+ @each $key in ('info', 'error', 'debug', 'success', 'warning') {
54
+ .badge--#{$key} {
55
+ background-color: var(--nappr-theme-state-#{$key});
56
+ color: var(--nappr-theme-text-primary);
57
+ }
58
+ }