@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.
- package/README.md +33 -20
- package/dist/styles.css +7745 -1
- package/dist/styles.css.map +1 -1
- package/dist/styles.min.css +3 -0
- package/dist/styles.min.css.map +1 -0
- package/docs/_coverpage.md +2 -2
- package/docs/_sidebar.md +2 -2
- package/docs/docs.theme.css +2 -1
- package/docs/docs.theme.css.map +1 -1
- package/docs/index.html +1 -1
- package/docs/pages/displays.md +26 -8
- package/docs/pages/grid.md +365 -0
- package/docs/pages/helpers.md +30 -18
- package/docs/pages/quick-start.md +100 -14
- package/docs/temp.scss +122 -0
- package/index.d.ts +25 -0
- package/package.json +49 -14
- package/sass/_globals.module.scss +43 -0
- package/sass/_globals.scss +79 -0
- package/sass/components/_.scss +2 -0
- package/sass/components/_badge.scss +58 -0
- package/sass/components/_button.scss +244 -0
- package/sass/components/_nav.scss +95 -0
- package/sass/components/scrollbar/_.scss +102 -0
- package/sass/configs/_.scss +7 -0
- package/sass/configs/_breakpoints.scss +12 -0
- package/sass/configs/_defaults.scss +6 -0
- package/sass/configs/_grid.scss +10 -0
- package/sass/configs/_palettes.scss +72 -0
- package/sass/configs/_spacing.scss +36 -0
- package/sass/configs/_text.scss +39 -0
- package/sass/configs/_themes.scss +24 -0
- package/sass/core/funcs/_list.scss +43 -0
- package/sass/core/funcs/_map.scss +42 -0
- package/sass/core/funcs/_math.scss +35 -0
- package/sass/core/funcs/_string.scss +47 -0
- package/sass/core/mixins/_.scss +3 -0
- package/{lib → sass/core}/mixins/_links.scss +2 -2
- package/sass/core/mixins/_media-queries.scss +22 -0
- package/sass/core/mixins/_typography.scss +26 -0
- package/sass/core/placeholders/_.scss +4 -0
- package/sass/core/placeholders/_dimensions.scss +31 -0
- package/sass/core/placeholders/_flexbox.scss +11 -0
- package/sass/core/placeholders/_lists.scss +41 -0
- package/sass/core/placeholders/_positions.scss +19 -0
- package/sass/core/placeholders/_typography.scss +10 -0
- package/sass/elements/_.scss +6 -0
- package/sass/elements/_dialog.scss +13 -0
- package/{lib/htmls → sass/elements}/_form.scss +28 -6
- package/sass/elements/_links.scss +132 -0
- package/sass/elements/_lists.scss +11 -0
- package/{lib/htmls → sass/elements}/_table.scss +2 -6
- package/sass/elements/_typography.scss +13 -0
- package/sass/layout/grid/_.scss +4 -0
- package/sass/layout/grid/_columns.scss +32 -0
- package/sass/layout/grid/_gaps.scss +42 -0
- package/sass/layout/grid/_grid.scss +158 -0
- package/sass/layout/grid/_offsets.scss +35 -0
- package/sass/main.scss +59 -0
- package/sass/resets/_.scss +5 -0
- package/sass/resets/_base.scss +69 -0
- package/sass/resets/_nappr.scss +83 -0
- package/sass/themes/_dark.scss +17 -0
- package/sass/themes/_dracula.scss +17 -0
- package/sass/themes/_github-light.scss +17 -0
- package/sass/themes/_light.scss +17 -0
- package/sass/themes/_monokai-pro.scss +17 -0
- package/sass/themes/_night-owl.scss +17 -0
- package/sass/themes/_nord.scss +17 -0
- package/sass/themes/_tokyo-night.scss +17 -0
- package/sass/utilities/_.scss +21 -0
- package/sass/utilities/_dimensions.scss +11 -0
- package/sass/utilities/_displays.scss +127 -0
- package/sass/utilities/_flexbox.scss +102 -0
- package/{lib/helpers → sass/utilities}/_floats.scss +10 -15
- package/sass/utilities/_lists.scss +86 -0
- package/sass/utilities/_negates.scss +121 -0
- package/sass/utilities/_palette.scss +11 -0
- package/sass/utilities/_scrolls.scss +78 -0
- package/sass/utilities/_spacers.scss +120 -0
- package/sass/utilities/_square-grid.scss +33 -0
- package/sass/utilities/_typography.scss +106 -0
- package/sass/utilities/_visibility.scss +60 -0
- package/sass/utilities/_wrap.scss +12 -0
- package/styles.scss +5 -1
- package/lib/_globals.scss +0 -16
- package/lib/_reset.scss +0 -223
- package/lib/customs/scrollbar.scss +0 -40
- package/lib/funcs/_.scss +0 -5
- package/lib/funcs/_get-color.scss +0 -3
- package/lib/funcs/_math.scss +0 -5
- package/lib/funcs/_merge-palette.scss +0 -12
- package/lib/funcs/_rem.scss +0 -104
- package/lib/funcs/_strings.scss +0 -35
- package/lib/grid/_.scss +0 -4
- package/lib/grid/_col.scss +0 -117
- package/lib/grid/_row.scss +0 -117
- package/lib/grid/_square.scss +0 -34
- package/lib/grid/_wrap.scss +0 -39
- package/lib/helpers/_.scss +0 -9
- package/lib/helpers/_displays.scss +0 -151
- package/lib/helpers/_flexbox.scss +0 -105
- package/lib/helpers/_margins.scss +0 -13
- package/lib/helpers/_negates.scss +0 -171
- package/lib/helpers/_scrolls.scss +0 -55
- package/lib/helpers/_texts.scss +0 -101
- package/lib/helpers/_visibility.scss +0 -34
- package/lib/htmls/_.scss +0 -4
- package/lib/htmls/_headings.scss +0 -29
- package/lib/htmls/_links.scss +0 -11
- package/lib/mixins/_.scss +0 -9
- package/lib/mixins/_border-radius.scss +0 -61
- package/lib/mixins/_border.scss +0 -48
- package/lib/mixins/_dimensions.scss +0 -48
- package/lib/mixins/_font-size.scss +0 -22
- package/lib/mixins/_line-height.scss +0 -19
- package/lib/mixins/_margin-padding.scss +0 -66
- package/lib/mixins/_root-variables.scss +0 -11
- package/lib/mixins/_theme.scss +0 -25
- package/lib/styles.scss +0 -19
- package/lib/variables/_.scss +0 -4
- package/lib/variables/_breakpoints.scss +0 -5
- package/lib/variables/_colors.scss +0 -60
- package/lib/variables/_defaults.scss +0 -53
- /package/{lib/helpers → sass/utilities}/_pointers.scss +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
@use '../core/placeholders/' as *;
|
|
2
|
+
|
|
3
|
+
// ==========================================================
|
|
4
|
+
// VERTICAL ALIGNMENT
|
|
5
|
+
// ==========================================================
|
|
6
|
+
|
|
7
|
+
@each $key in (top, middle, bottom, baseline, sub, super) {
|
|
8
|
+
.valign-#{$key} {
|
|
9
|
+
vertical-align: $key;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// ==========================================================
|
|
14
|
+
// DISPLAY TYPES
|
|
15
|
+
// ==========================================================
|
|
16
|
+
|
|
17
|
+
@each $key in (flex, grid, block, inline, inline-block, table, table-cell) {
|
|
18
|
+
.is-#{$key} {
|
|
19
|
+
display: $key;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// ==========================================================
|
|
24
|
+
// STRETCHING
|
|
25
|
+
// ==========================================================
|
|
26
|
+
|
|
27
|
+
.stretch-y {
|
|
28
|
+
bottom: 0;
|
|
29
|
+
top: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.stretch-x {
|
|
33
|
+
left: 0;
|
|
34
|
+
right: 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ==========================================================
|
|
38
|
+
// PLACEMENTS
|
|
39
|
+
// ==========================================================
|
|
40
|
+
|
|
41
|
+
@each $token,
|
|
42
|
+
$values
|
|
43
|
+
in (
|
|
44
|
+
'tl': (
|
|
45
|
+
top,
|
|
46
|
+
left,
|
|
47
|
+
),
|
|
48
|
+
'br': (
|
|
49
|
+
bottom,
|
|
50
|
+
right,
|
|
51
|
+
),
|
|
52
|
+
'bl': (
|
|
53
|
+
bottom,
|
|
54
|
+
left,
|
|
55
|
+
),
|
|
56
|
+
'tr': (
|
|
57
|
+
top,
|
|
58
|
+
right,
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
{
|
|
62
|
+
.placement-#{$token} {
|
|
63
|
+
@each $value in $values {
|
|
64
|
+
#{$value}: 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ==========================================================
|
|
70
|
+
// POSITIONING
|
|
71
|
+
// ==========================================================
|
|
72
|
+
|
|
73
|
+
@each $key in (relative, absolute, fixed, sticky) {
|
|
74
|
+
.is-#{$key} {
|
|
75
|
+
position: $key;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// ==========================================================
|
|
80
|
+
// COVERING and OVERLAYING
|
|
81
|
+
// ==========================================================
|
|
82
|
+
|
|
83
|
+
.is-cover {
|
|
84
|
+
@extend %is-all-edges;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.is-overlay {
|
|
88
|
+
@extend %is-all-edges;
|
|
89
|
+
@extend %position-absolute;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.is-overlay--fixed {
|
|
93
|
+
@extend %is-all-edges;
|
|
94
|
+
@extend %position-fixed;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// ==========================================================
|
|
98
|
+
// Layout
|
|
99
|
+
// ==========================================================
|
|
100
|
+
|
|
101
|
+
.is-layout-width {
|
|
102
|
+
@extend %is-full-width;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.is-layout-height {
|
|
106
|
+
@extend %is-full-height;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.is-layout {
|
|
110
|
+
@extend %is-full-layout;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// ==========================================================
|
|
114
|
+
// Viewport
|
|
115
|
+
// ==========================================================
|
|
116
|
+
|
|
117
|
+
.is-viewport-width {
|
|
118
|
+
@extend %is-viewport-width;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.is-viewport-height {
|
|
122
|
+
@extend %is-viewport-height;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.is-viewport {
|
|
126
|
+
@extend %is-viewport-layout;
|
|
127
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
@use '../core/placeholders/' as *;
|
|
2
|
+
@use '../core/funcs/list' as list;
|
|
3
|
+
@use '../core/funcs/map' as map;
|
|
4
|
+
|
|
5
|
+
@each $value in list.steps(1, 12) {
|
|
6
|
+
.flex-#{$value} {
|
|
7
|
+
flex: #{$value};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@each $key, $direction in ('columns': row, 'rows': column) {
|
|
12
|
+
.flex-#{$key} {
|
|
13
|
+
@extend %flex-base;
|
|
14
|
+
|
|
15
|
+
flex-direction: $direction;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.flex-#{$key}-reverse {
|
|
19
|
+
flex-direction: #{$direction}-reverse;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.flex-wrap {
|
|
24
|
+
flex-wrap: wrap;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.flex-wrap-inverse {
|
|
28
|
+
flex-wrap: wrap-reverse;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.flex-wrapper {
|
|
32
|
+
@extend %flex-wrapper;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ==========================================================
|
|
36
|
+
// Flexbox Layouts (Distribution)
|
|
37
|
+
// ==========================================================
|
|
38
|
+
|
|
39
|
+
@each $key,
|
|
40
|
+
$value
|
|
41
|
+
in (
|
|
42
|
+
'start': flex-start,
|
|
43
|
+
'center': center,
|
|
44
|
+
'end': flex-end,
|
|
45
|
+
'between': space-between,
|
|
46
|
+
'around': space-around,
|
|
47
|
+
'evenly': space-evenly,
|
|
48
|
+
'stretch': stretch
|
|
49
|
+
)
|
|
50
|
+
{
|
|
51
|
+
.flex-#{$key} {
|
|
52
|
+
justify-content: $value;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// fait grandir les éléments eux-mêmes pour occuper l'espace disponible sur l'axe principal
|
|
57
|
+
.flex-justify > * {
|
|
58
|
+
flex: 1 1 auto;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// ==========================================================
|
|
62
|
+
// Items Spacers
|
|
63
|
+
// ==========================================================
|
|
64
|
+
|
|
65
|
+
@each $key,
|
|
66
|
+
$value
|
|
67
|
+
in (
|
|
68
|
+
'start': flex-start,
|
|
69
|
+
'center': center,
|
|
70
|
+
'end': flex-end,
|
|
71
|
+
'stretch': stretch,
|
|
72
|
+
'baseline': baseline
|
|
73
|
+
)
|
|
74
|
+
{
|
|
75
|
+
.items-#{$key} {
|
|
76
|
+
align-items: $value;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.self-#{$key} {
|
|
80
|
+
align-self: $value;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
$gaps-map: list.steps(1, 6);
|
|
85
|
+
$gaps-map: map.mirror($gaps-map);
|
|
86
|
+
$gaps-map: map.merge(
|
|
87
|
+
$gaps-map,
|
|
88
|
+
(
|
|
89
|
+
'0': 0,
|
|
90
|
+
'0-75': 0.75,
|
|
91
|
+
'1': 1,
|
|
92
|
+
'1-5': 1.5,
|
|
93
|
+
'2': 2,
|
|
94
|
+
'2-5': 2.5,
|
|
95
|
+
)
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
@each $key, $value in $gaps-map {
|
|
99
|
+
.gap-#{$key}v {
|
|
100
|
+
gap: #{$value}rem;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
// ==========================================================
|
|
2
|
+
// Utility Classes
|
|
3
|
+
// ==========================================================
|
|
1
4
|
.clearfix {
|
|
2
|
-
*zoom: 1;
|
|
3
|
-
|
|
4
5
|
&::after,
|
|
5
6
|
&::before {
|
|
6
7
|
content: '.';
|
|
@@ -22,18 +23,12 @@
|
|
|
22
23
|
clear: both;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
clear
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
.clear-left {
|
|
30
|
-
clear: left;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.float-left {
|
|
34
|
-
float: left;
|
|
35
|
-
}
|
|
26
|
+
@each $name in (right, left) {
|
|
27
|
+
.clear-#{$name} {
|
|
28
|
+
clear: $name;
|
|
29
|
+
}
|
|
36
30
|
|
|
37
|
-
.float
|
|
38
|
-
|
|
31
|
+
.float-#{$name} {
|
|
32
|
+
float: $name;
|
|
33
|
+
}
|
|
39
34
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
@use '../core/placeholders/' as *;
|
|
2
|
+
|
|
3
|
+
// =================================================================
|
|
4
|
+
// 1. Lists
|
|
5
|
+
// =================================================================
|
|
6
|
+
|
|
7
|
+
// --- 1.1. Unordered Lists ---
|
|
8
|
+
|
|
9
|
+
ul.list--styled,
|
|
10
|
+
ul.list--unstyled {
|
|
11
|
+
> li::marker {
|
|
12
|
+
font-size: calc(var(--xl-size) * 0.9);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
ul.list--unstyled {
|
|
17
|
+
@extend %list-type--unstyled;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
ul.list--styled {
|
|
21
|
+
@extend %list-type--styled;
|
|
22
|
+
|
|
23
|
+
list-style-type: disc;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// --- 1.2. Ordered Lists ---
|
|
27
|
+
|
|
28
|
+
ol.list--styled,
|
|
29
|
+
ol.list--unstyled {
|
|
30
|
+
counter-reset: li-counter;
|
|
31
|
+
|
|
32
|
+
> li {
|
|
33
|
+
counter-increment: li-counter;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
> li::marker {
|
|
37
|
+
font-size: var(--xl-size);
|
|
38
|
+
font-weight: 700;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
ol.list--unstyled {
|
|
43
|
+
@extend %list-type--unstyled;
|
|
44
|
+
|
|
45
|
+
> li::marker {
|
|
46
|
+
content: none;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
ol.list--styled {
|
|
51
|
+
@extend %list-type--styled;
|
|
52
|
+
|
|
53
|
+
list-style-type: decimal;
|
|
54
|
+
|
|
55
|
+
> li::marker {
|
|
56
|
+
content: counters(li-counter, '.') '. ';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// --- 1.3. Definition Lists ---
|
|
61
|
+
|
|
62
|
+
dl.list--styled,
|
|
63
|
+
dl.list--unstyled {
|
|
64
|
+
dd,
|
|
65
|
+
dl {
|
|
66
|
+
margin: 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
dl.list--unstyled {
|
|
71
|
+
@extend %list-type--unstyled;
|
|
72
|
+
|
|
73
|
+
dd,
|
|
74
|
+
dl {
|
|
75
|
+
padding-inline-start: 0;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
dl.list--styled {
|
|
80
|
+
@extend %list-type--styled;
|
|
81
|
+
|
|
82
|
+
dd,
|
|
83
|
+
dl {
|
|
84
|
+
padding-inline-start: 1rem;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
@use '../core/funcs/map' as map;
|
|
2
|
+
|
|
3
|
+
// ==========================================================
|
|
4
|
+
// NEGATES
|
|
5
|
+
// ==========================================================
|
|
6
|
+
|
|
7
|
+
// --- TEXT DECORATION NEGATES (with link states) ---
|
|
8
|
+
@each $state in ('', ':hover', ':active', ':visited') {
|
|
9
|
+
.no-underline,
|
|
10
|
+
a.no-underline#{$state} {
|
|
11
|
+
text-decoration: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.no-no-underline,
|
|
15
|
+
a.no-no-underline#{$state} {
|
|
16
|
+
text-decoration: none !important;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// --- NEGATES ---
|
|
21
|
+
@each $name,
|
|
22
|
+
$config
|
|
23
|
+
in (
|
|
24
|
+
'background': (
|
|
25
|
+
'property': 'background',
|
|
26
|
+
'value': none,
|
|
27
|
+
),
|
|
28
|
+
'events': (
|
|
29
|
+
'property': 'pointer-events',
|
|
30
|
+
'value': none,
|
|
31
|
+
),
|
|
32
|
+
'flex-grow': (
|
|
33
|
+
'property': 'flex',
|
|
34
|
+
'value': 0 1,
|
|
35
|
+
),
|
|
36
|
+
'flex-shrink': (
|
|
37
|
+
'property': 'flex',
|
|
38
|
+
'value': 1 0,
|
|
39
|
+
),
|
|
40
|
+
'float': (
|
|
41
|
+
'property': 'float',
|
|
42
|
+
'value': none,
|
|
43
|
+
),
|
|
44
|
+
'flex': (
|
|
45
|
+
'property': 'flex',
|
|
46
|
+
'value': none,
|
|
47
|
+
),
|
|
48
|
+
'margin': (
|
|
49
|
+
'property': 'margin',
|
|
50
|
+
'value': 0,
|
|
51
|
+
),
|
|
52
|
+
'padding': (
|
|
53
|
+
'property': 'padding',
|
|
54
|
+
'value': 0,
|
|
55
|
+
),
|
|
56
|
+
'border': (
|
|
57
|
+
'property': 'border',
|
|
58
|
+
'value': 0,
|
|
59
|
+
),
|
|
60
|
+
'radius': (
|
|
61
|
+
'property': 'border-radius',
|
|
62
|
+
'value': 0,
|
|
63
|
+
),
|
|
64
|
+
'outline': (
|
|
65
|
+
'property': 'outline',
|
|
66
|
+
'value': none,
|
|
67
|
+
),
|
|
68
|
+
'pointer': (
|
|
69
|
+
'property': 'cursor',
|
|
70
|
+
'value': default,
|
|
71
|
+
),
|
|
72
|
+
'select': (
|
|
73
|
+
'property': 'user-select',
|
|
74
|
+
'value': none,
|
|
75
|
+
),
|
|
76
|
+
'wrap': (
|
|
77
|
+
'property': 'white-space',
|
|
78
|
+
'value': nowrap,
|
|
79
|
+
)
|
|
80
|
+
)
|
|
81
|
+
{
|
|
82
|
+
$property: map.get($config, 'property');
|
|
83
|
+
$value: map.get($config, 'value');
|
|
84
|
+
|
|
85
|
+
.no-#{$name} {
|
|
86
|
+
#{$property}: #{$value};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.no-no-#{$name} {
|
|
90
|
+
#{$property}: #{$value} !important;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// --- UTILITY CLASSES ---
|
|
95
|
+
.no-click-allowed {
|
|
96
|
+
cursor: not-allowed;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.no-overflow {
|
|
100
|
+
overflow: hidden;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.no-no-overflow {
|
|
104
|
+
overflow: hidden !important;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.no-overflow-x {
|
|
108
|
+
overflow-x: hidden;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.no-no-overflow-x {
|
|
112
|
+
overflow-x: hidden !important;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.no-overflow-y {
|
|
116
|
+
overflow-y: hidden;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.no-no-overflow-y {
|
|
120
|
+
overflow-y: hidden !important;
|
|
121
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Applique la variable CSS locale --nappr-data-color à la couleur du texte.
|
|
2
|
+
// @example <div data-color="black" class="text-data-color">Texte noir</div>
|
|
3
|
+
.text-data-color {
|
|
4
|
+
color: var(--nappr-data-color);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
// Applique la variable CSS locale --nappr-data-color au fond.
|
|
8
|
+
// @example <div data-color="black" class="bg-data-color">Fond noir</div>
|
|
9
|
+
.bg-data-color {
|
|
10
|
+
background-color: var(--nappr-data-color);
|
|
11
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
@use '../core/placeholders/' as *;
|
|
2
|
+
|
|
3
|
+
// ==========================================================
|
|
4
|
+
// Placeholders
|
|
5
|
+
// ==========================================================
|
|
6
|
+
%scroll-smooth-mobile {
|
|
7
|
+
-webkit-overflow-scrolling: touch; /* Smooth scrolling sur iOS */
|
|
8
|
+
overscroll-behavior: contain; /* Empêche le scroll bounce sur iOS */
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
%is-scrollbox {
|
|
12
|
+
@extend %is-full-layout;
|
|
13
|
+
@extend %position-absolute;
|
|
14
|
+
@extend %scroll-smooth-mobile;
|
|
15
|
+
|
|
16
|
+
overflow: auto;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
%is-scrollbox-y {
|
|
20
|
+
@extend %is-full-layout;
|
|
21
|
+
@extend %position-absolute;
|
|
22
|
+
@extend %scroll-smooth-mobile;
|
|
23
|
+
|
|
24
|
+
overflow: hidden auto;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
%scroll-x-auto {
|
|
28
|
+
@extend %scroll-smooth-mobile;
|
|
29
|
+
|
|
30
|
+
overflow: auto hidden;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
%scroll-y-auto {
|
|
34
|
+
@extend %scroll-smooth-mobile;
|
|
35
|
+
|
|
36
|
+
overflow: hidden auto;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ==========================================================
|
|
40
|
+
// Utility Classes
|
|
41
|
+
// ==========================================================
|
|
42
|
+
.scroll-x-only {
|
|
43
|
+
overflow: scroll hidden;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.scroll-y-only {
|
|
47
|
+
overflow: hidden scroll;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.scroll-x-auto {
|
|
51
|
+
@extend %scroll-x-auto;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.scroll-y-auto {
|
|
55
|
+
@extend %scroll-y-auto;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.scrollbox-wrapper {
|
|
59
|
+
@extend %position-relative;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.scrollbox {
|
|
63
|
+
@extend %is-scrollbox;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.scrollbox-y {
|
|
67
|
+
@extend %is-scrollbox;
|
|
68
|
+
@extend %scroll-y-auto;
|
|
69
|
+
|
|
70
|
+
height: auto;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.scrollbox-x {
|
|
74
|
+
@extend %is-scrollbox;
|
|
75
|
+
@extend %scroll-x-auto;
|
|
76
|
+
|
|
77
|
+
height: auto;
|
|
78
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
@use '../configs/' as configs;
|
|
2
|
+
@use '../core/mixins/' as mixins;
|
|
3
|
+
@use '../core/funcs/map' as map;
|
|
4
|
+
@use '../core/funcs/string' as string;
|
|
5
|
+
|
|
6
|
+
// @use '../core/funcs/list' as list;
|
|
7
|
+
// @use '../core/funcs/math' as math;
|
|
8
|
+
|
|
9
|
+
// ==========================================================
|
|
10
|
+
// Functions
|
|
11
|
+
// ==========================================================
|
|
12
|
+
// @function generate-spacers-map(
|
|
13
|
+
// $min,
|
|
14
|
+
// $max,
|
|
15
|
+
// $base: 4,
|
|
16
|
+
// $suffix: 'v',
|
|
17
|
+
// $unit: 'rem'
|
|
18
|
+
// ) {
|
|
19
|
+
// $map: ();
|
|
20
|
+
// $range: list.iterate($min, $max);
|
|
21
|
+
|
|
22
|
+
// @each $i in $range {
|
|
23
|
+
// $value: math.div($i, $base);
|
|
24
|
+
// $key: if($i < 0, 'n#{math.abs($i)}#{$suffix}', '#{$i}#{$suffix}');
|
|
25
|
+
// $token: if($i == 0, '0', $key);
|
|
26
|
+
// $map: map.set($map, $token, #{$value}#{$unit});
|
|
27
|
+
// }
|
|
28
|
+
|
|
29
|
+
// $map: map.merge(
|
|
30
|
+
// (
|
|
31
|
+
// 'auto': auto,
|
|
32
|
+
// 'n1-5#{$suffix}': -0.375#{$unit},
|
|
33
|
+
// 'n0-5#{$suffix}': -0.125#{$unit},
|
|
34
|
+
// '0-5#{$suffix}': 0.125#{$unit},
|
|
35
|
+
// '1-5#{$suffix}': 0.375#{$unit},
|
|
36
|
+
// ),
|
|
37
|
+
// $map
|
|
38
|
+
// );
|
|
39
|
+
|
|
40
|
+
// @return $map;
|
|
41
|
+
// }
|
|
42
|
+
|
|
43
|
+
// ==========================================================
|
|
44
|
+
// Mixins
|
|
45
|
+
// ==========================================================
|
|
46
|
+
@function get-classname-prefix($prop, $suffix: '') {
|
|
47
|
+
$first-letter: string.slice('#{$prop}', 0, 1);
|
|
48
|
+
$classname: '.#{$first-letter}#{$suffix}';
|
|
49
|
+
|
|
50
|
+
@return $classname;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@function get-classname-suffix($side, $token, $bpt: null) {
|
|
54
|
+
$abbr-map: (
|
|
55
|
+
'all': '',
|
|
56
|
+
'topbottom': 'y',
|
|
57
|
+
'leftright': 'x',
|
|
58
|
+
);
|
|
59
|
+
$bpt-prefix: if($bpt != null, '-#{$bpt}', '');
|
|
60
|
+
$side-abbr: if(
|
|
61
|
+
map.has-key($abbr-map, $side),
|
|
62
|
+
map.get($abbr-map, $side),
|
|
63
|
+
string.slice($side, 0, 1)
|
|
64
|
+
);
|
|
65
|
+
$classname-suffix: '#{$side-abbr}#{$bpt-prefix}-#{$token}';
|
|
66
|
+
|
|
67
|
+
@return $classname-suffix;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@mixin generate-spacers($token-map, $bpt: null) {
|
|
71
|
+
@each $token, $value in $token-map {
|
|
72
|
+
@each $side in (all, topbottom, leftright, top, left, right, bottom) {
|
|
73
|
+
$is-auto: $token == 'auto';
|
|
74
|
+
$classname-suffix: get-classname-suffix($side, $token, $bpt);
|
|
75
|
+
$current-props: if($is-auto, (margin), (margin, padding));
|
|
76
|
+
|
|
77
|
+
@each $prop in $current-props {
|
|
78
|
+
$classname-prefix: get-classname-prefix($prop);
|
|
79
|
+
$classname: string.concat($classname-prefix, $classname-suffix);
|
|
80
|
+
$css-value: if(
|
|
81
|
+
$is-auto,
|
|
82
|
+
auto,
|
|
83
|
+
var(--nappr-spacing-#{$token}, #{$value})
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
@if $side == 'all' {
|
|
87
|
+
#{$classname} {
|
|
88
|
+
#{$prop}: $css-value;
|
|
89
|
+
}
|
|
90
|
+
} @else if $side == 'topbottom' {
|
|
91
|
+
#{$classname} {
|
|
92
|
+
#{$prop}-top: $css-value;
|
|
93
|
+
#{$prop}-bottom: $css-value;
|
|
94
|
+
}
|
|
95
|
+
} @else if $side == 'leftright' {
|
|
96
|
+
#{$classname} {
|
|
97
|
+
#{$prop}-left: $css-value;
|
|
98
|
+
#{$prop}-right: $css-value;
|
|
99
|
+
}
|
|
100
|
+
} @else {
|
|
101
|
+
#{$classname} {
|
|
102
|
+
#{$prop}-#{$side}: $css-value;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// ==========================================================
|
|
111
|
+
// UTILITY CLASSES
|
|
112
|
+
// ---
|
|
113
|
+
// generate spacers classes
|
|
114
|
+
// Exemple: .m-0-5v, .p-2v, .mx-3v-md
|
|
115
|
+
// ==========================================================
|
|
116
|
+
@include generate-spacers(configs.$NAPPR_SPACING);
|
|
117
|
+
|
|
118
|
+
@include mixins.media-query-min('md') {
|
|
119
|
+
@include generate-spacers(configs.$NAPPR_SPACING, 'md');
|
|
120
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@use '../core/funcs/math' as math;
|
|
2
|
+
|
|
3
|
+
// ==========================================================
|
|
4
|
+
// Mixins
|
|
5
|
+
// ==========================================================
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Generate square grid classes
|
|
9
|
+
* @param {Number} $gutters - Number of gutters
|
|
10
|
+
* @return {Void}
|
|
11
|
+
*/
|
|
12
|
+
@mixin generate-square-grid($gutters) {
|
|
13
|
+
@for $i from 1 through $gutters {
|
|
14
|
+
$gap: $i - 1;
|
|
15
|
+
$percent: math.div((100 - $gap), $i);
|
|
16
|
+
.square-grid-#{$i} > * {
|
|
17
|
+
width: math.number-to-percent($percent);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ==========================================================
|
|
23
|
+
// UTILITY CLASSES
|
|
24
|
+
// ==========================================================
|
|
25
|
+
|
|
26
|
+
.square-grid {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-flow: row wrap;
|
|
29
|
+
gap: 1%;
|
|
30
|
+
justify-content: flex-start;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@include generate-square-grid(6);
|