@natachah/vanilla-frontend 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +7 -0
- package/docs/pages/{components → base}/media.html +2 -2
- package/docs/pages/{layout → base}/reset.html +2 -2
- package/docs/pages/{layout → base}/typography.html +2 -2
- package/docs/pages/components/badge.html +2 -2
- package/docs/pages/components/breadcrumb.html +1 -1
- package/docs/pages/components/button.html +2 -2
- package/docs/pages/components/card.html +1 -1
- package/docs/pages/components/dialog.html +1 -1
- package/docs/pages/components/disclosure.html +1 -1
- package/docs/pages/components/dropdown.html +2 -2
- package/docs/pages/components/form.html +2 -2
- package/docs/pages/components/list.html +1 -1
- package/docs/pages/components/loading.html +1 -1
- package/docs/pages/components/progress.html +1 -1
- package/docs/pages/components/slider.html +1 -1
- package/docs/pages/components/table.html +1 -1
- package/docs/pages/{layout → layouts}/grid.html +1 -1
- package/docs/pages/quick-start/conventions.html +7 -7
- package/docs/pages/quick-start/customization.html +59 -62
- package/docs/pages/quick-start/installation.html +31 -28
- package/docs/pages/quick-start/mixins.html +29 -11
- package/docs/src/js/demo.js +1 -1
- package/docs/src/js/doc-layout.js +9 -6
- package/docs/src/scss/demo.scss +2 -2
- package/docs/src/scss/layout.scss +1 -1
- package/docs/src/scss/style.scss +2 -2
- package/esbuild.mjs +1 -1
- package/js/_autofill.js +0 -1
- package/js/_check-all.js +0 -1
- package/js/_comfort.js +0 -1
- package/js/_consent.js +0 -1
- package/js/_dialog.js +0 -1
- package/js/_dropdown.js +0 -1
- package/js/_scroll.js +0 -1
- package/js/_sidebar.js +0 -1
- package/js/_slider.js +0 -1
- package/js/_sortable.js +0 -1
- package/js/_tabpanel.js +0 -1
- package/js/_toggle.js +0 -1
- package/js/_tree.js +0 -1
- package/js/utilities/_base-component.js +0 -1
- package/js/utilities/_cookie.js +0 -1
- package/js/utilities/_error.js +0 -1
- package/js/utilities/_form-helper.js +0 -1
- package/package.json +2 -2
- package/scss/abstracts/_default.scss +21 -0
- package/scss/{utilities/_mixin.scss → abstracts/_mixins.scss} +49 -15
- package/scss/{variables/_setting.scss → abstracts/_options.scss} +5 -24
- package/scss/{_media.scss → base/_media.scss} +1 -2
- package/scss/{utilities → base}/_reset.scss +2 -3
- package/scss/{utilities → base}/_typography.scss +1 -2
- package/scss/base/index.scss +3 -0
- package/scss/{_badge.scss → components/_badge.scss} +5 -4
- package/scss/{_breadcrumb.scss → components/_breadcrumb.scss} +0 -1
- package/scss/{_button.scss → components/_button.scss} +2 -1
- package/scss/{_card.scss → components/_card.scss} +9 -8
- package/scss/{_dialog.scss → components/_dialog.scss} +7 -23
- package/scss/{_disclosure.scss → components/_disclosure.scss} +2 -1
- package/scss/{_dropdown.scss → components/_dropdown.scss} +7 -6
- package/scss/{_form.scss → components/_form.scss} +2 -1
- package/scss/{_group.scss → components/_group.scss} +3 -1
- package/scss/{_list.scss → components/_list.scss} +4 -3
- package/scss/{_loading.scss → components/_loading.scss} +0 -1
- package/scss/{_progress.scss → components/_progress.scss} +0 -1
- package/scss/{_slider.scss → components/_slider.scss} +0 -1
- package/scss/{_table.scss → components/_table.scss} +0 -1
- package/scss/components/index.scss +14 -0
- package/scss/{_grid.scss → layouts/_grid.scss} +1 -2
- package/scss/{variables → themes}/_root.scss +0 -1
- package/scss/vanilla-frontend.scss +19 -21
|
@@ -9,20 +9,21 @@
|
|
|
9
9
|
/// @require {mixin} as-item
|
|
10
10
|
/// @group components
|
|
11
11
|
/// @author Natacha Herth
|
|
12
|
-
/// @since 1.0.0
|
|
13
12
|
///
|
|
14
13
|
////
|
|
15
14
|
|
|
16
15
|
@use "sass:map";
|
|
16
|
+
@use "../abstracts/default";
|
|
17
|
+
@use "../abstracts/mixins" as *;
|
|
17
18
|
|
|
18
|
-
$
|
|
19
|
+
$customBadge: (
|
|
19
20
|
background: color-mix(in srgb, transparent, var(--hover-color) var(--hover-percent)),
|
|
20
21
|
padding-block: .25em,
|
|
21
22
|
padding-inline: .375em
|
|
22
23
|
);
|
|
23
24
|
|
|
24
25
|
// Change default properties
|
|
25
|
-
$
|
|
26
|
+
$customBadgeProperties: map.merge(default.$item-properties, $customBadge);
|
|
26
27
|
|
|
27
28
|
.badge {
|
|
28
29
|
|
|
@@ -32,6 +33,6 @@ $properties: map.merge($default-item-properties, $custom);
|
|
|
32
33
|
line-height: 1;
|
|
33
34
|
|
|
34
35
|
// Define as an item
|
|
35
|
-
@include as-item('badge', (), $
|
|
36
|
+
@include as-item('badge', (), $customBadgeProperties);
|
|
36
37
|
|
|
37
38
|
}
|
|
@@ -9,24 +9,25 @@
|
|
|
9
9
|
/// @require {mixin} as-item
|
|
10
10
|
/// @group components
|
|
11
11
|
/// @author Natacha Herth
|
|
12
|
-
/// @since 1.0.0
|
|
13
12
|
///
|
|
14
13
|
////
|
|
15
14
|
|
|
16
15
|
@use "sass:map";
|
|
16
|
+
@use "../abstracts/default";
|
|
17
|
+
@use "../abstracts/mixins" as *;
|
|
17
18
|
|
|
18
|
-
$
|
|
19
|
+
$customCard: (
|
|
19
20
|
padding-block: 1rem,
|
|
20
21
|
padding-inline: 1rem
|
|
21
22
|
);
|
|
22
23
|
|
|
23
24
|
// Change default properties
|
|
24
|
-
$
|
|
25
|
+
$customCardProperties: map.merge(default.$item-properties, $customCard);
|
|
25
26
|
|
|
26
27
|
.card {
|
|
27
28
|
|
|
28
29
|
// Design as item
|
|
29
|
-
@include as-item('card', (), $
|
|
30
|
+
@include as-item('card', (), $customCardProperties);
|
|
30
31
|
|
|
31
32
|
// Design the layout
|
|
32
33
|
> header,
|
|
@@ -35,17 +36,17 @@ $properties: map.merge($default-item-properties, $custom);
|
|
|
35
36
|
> .list,
|
|
36
37
|
> .accordion,
|
|
37
38
|
> .group {
|
|
38
|
-
margin-inline: calc(var(--card-padding-inline, map.get($
|
|
39
|
+
margin-inline: calc(var(--card-padding-inline, map.get($customCard, padding-inline)) * -1);
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
> header,
|
|
42
43
|
> footer {
|
|
43
|
-
padding: calc(var(--card-padding-block, map.get($
|
|
44
|
+
padding: calc(var(--card-padding-block, map.get($customCard, padding-block)) / 2) var(--card-padding-inline, map.get($customCard, padding-inline));
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
> header,
|
|
47
48
|
> :first-child:is(picture, .list, .group) {
|
|
48
|
-
margin-top: calc(var(--card-padding-block, map.get($
|
|
49
|
+
margin-top: calc(var(--card-padding-block, map.get($customCard, padding-block)) * -1);
|
|
49
50
|
border-start-start-radius: inherit;
|
|
50
51
|
border-start-end-radius: inherit;
|
|
51
52
|
border-bottom: var(--card-divider-size, var(--card-border-size, var(--border-size))) var(--card-divider-style, var(--card-border-style, var(--border-style))) var(--card-divider-color, var(--card-border-color, transparent));
|
|
@@ -53,7 +54,7 @@ $properties: map.merge($default-item-properties, $custom);
|
|
|
53
54
|
|
|
54
55
|
> footer,
|
|
55
56
|
> :last-child:is(picture, .list, .group) {
|
|
56
|
-
margin-bottom: calc(var(--card-padding-block, map.get($
|
|
57
|
+
margin-bottom: calc(var(--card-padding-block, map.get($customCard, padding-block)) * -1);
|
|
57
58
|
border-end-start-radius: inherit;
|
|
58
59
|
border-end-end-radius: inherit;
|
|
59
60
|
border-top: var(--card-divider-size, var(--card-border-size, var(--border-size))) var(--card-divider-style, var(--card-border-style, var(--border-style))) var(--card-divider-color, var(--card-border-color, transparent));
|
|
@@ -6,22 +6,24 @@
|
|
|
6
6
|
///
|
|
7
7
|
/// @example <dialog>My dialog</dialog>
|
|
8
8
|
///
|
|
9
|
+
/// @require {mixin} as-item
|
|
9
10
|
/// @group components
|
|
10
11
|
/// @author Natacha Herth
|
|
11
|
-
/// @since 1.0.0
|
|
12
12
|
///
|
|
13
13
|
////
|
|
14
14
|
|
|
15
15
|
@use "sass:map";
|
|
16
|
+
@use "../abstracts/default";
|
|
17
|
+
@use "../abstracts/mixins" as *;
|
|
16
18
|
|
|
17
|
-
$
|
|
19
|
+
$customDialog: (
|
|
18
20
|
background: var(--color-body),
|
|
19
21
|
padding-block: 2rem,
|
|
20
22
|
padding-inline: 2rem
|
|
21
23
|
);
|
|
22
24
|
|
|
23
25
|
// Change default properties
|
|
24
|
-
$
|
|
26
|
+
$customDialogProperties: map.merge(default.$item-properties, $customDialog);
|
|
25
27
|
|
|
26
28
|
dialog {
|
|
27
29
|
|
|
@@ -38,7 +40,7 @@ dialog {
|
|
|
38
40
|
overflow: auto;
|
|
39
41
|
|
|
40
42
|
// Design as item
|
|
41
|
-
@include as-item('dialog', (), $
|
|
43
|
+
@include as-item('dialog', (), $customDialogProperties);
|
|
42
44
|
|
|
43
45
|
// Animate the dialog
|
|
44
46
|
@media screen and (prefers-reduced-motion: no-preference) {
|
|
@@ -64,25 +66,7 @@ dialog {
|
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
// Design the layout
|
|
67
|
-
|
|
68
|
-
> footer {
|
|
69
|
-
margin-inline: calc(var(--dialog-padding-inline, map.get($custom, padding-inline)) * -1);
|
|
70
|
-
padding: calc(var(--dialog-padding-block, map.get($custom, padding-block)) / 2) var(--dialog-padding-inline, map.get($custom, padding-inline));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
> header {
|
|
74
|
-
margin-top: calc(var(--dialog-padding-block, map.get($custom, padding-block)) * -1);
|
|
75
|
-
border-start-start-radius: inherit;
|
|
76
|
-
border-start-end-radius: inherit;
|
|
77
|
-
border-bottom: var(--dialog-divider-size, var(--dialog-border-size, var(--border-size))) var(--dialog-divider-style, var(--dialog-border-style, var(--border-style))) var(--dialog-divider-color, var(--dialog-border-color, transparent));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
> footer {
|
|
81
|
-
margin-bottom: calc(var(--dialog-padding-block, map.get($custom, padding-block)) * -1);
|
|
82
|
-
border-end-start-radius: inherit;
|
|
83
|
-
border-end-end-radius: inherit;
|
|
84
|
-
border-top: var(--dialog-divider-size, var(--dialog-border-size, var(--border-size))) var(--dialog-divider-style, var(--dialog-border-style, var(--border-style))) var(--dialog-divider-color, var(--dialog-border-color, transparent));
|
|
85
|
-
}
|
|
69
|
+
@include with-header-and-footer('dialog', $customDialogProperties);
|
|
86
70
|
|
|
87
71
|
}
|
|
88
72
|
|
|
@@ -6,22 +6,23 @@
|
|
|
6
6
|
///
|
|
7
7
|
/// @example <div class="dropdown"><button aria-controls="myDropdown" aria-expanded="false" aria-pressed="false">Button</button><ul id="myDropdown" hidden>...</ul></div>
|
|
8
8
|
///
|
|
9
|
+
/// @require {mixin} as-item
|
|
9
10
|
/// @require {mixin} as-list
|
|
10
11
|
/// @group components
|
|
11
12
|
/// @author Natacha Herth
|
|
12
|
-
/// @since 1.0.0
|
|
13
13
|
///
|
|
14
14
|
////
|
|
15
15
|
|
|
16
16
|
@use "sass:map";
|
|
17
|
+
@use "../abstracts/default";
|
|
18
|
+
@use "../abstracts/mixins" as *;
|
|
17
19
|
|
|
18
|
-
$
|
|
20
|
+
$customDropdown: (
|
|
19
21
|
background: var(--color-body)
|
|
20
22
|
);
|
|
21
23
|
|
|
22
24
|
// Change default properties
|
|
23
|
-
$
|
|
24
|
-
|
|
25
|
+
$customDropdownProperties: map.merge(default.$item-properties, $customDropdown);
|
|
25
26
|
|
|
26
27
|
.dropdown {
|
|
27
28
|
|
|
@@ -55,12 +56,12 @@ $properties: map.merge($default-item-properties, $custom);
|
|
|
55
56
|
|
|
56
57
|
// Simple bloc
|
|
57
58
|
&:not(ul, li) {
|
|
58
|
-
@include as-item('dropdown', (), $
|
|
59
|
+
@include as-item('dropdown', (), $customDropdownProperties);
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
// As list
|
|
62
63
|
&:is(ul, ol) {
|
|
63
|
-
@include as-list('dropdown', ('focus', 'hover', 'active', 'disabled'), $
|
|
64
|
+
@include as-list('dropdown', ('focus', 'hover', 'active', 'disabled'), $customDropdownProperties);
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
}
|
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
///
|
|
7
7
|
/// @example <div class="group">...</div>
|
|
8
8
|
///
|
|
9
|
+
/// @require { mixin} as-item
|
|
9
10
|
/// @group components
|
|
10
11
|
/// @author Natacha Herth
|
|
11
|
-
/// @since 1.0.0
|
|
12
12
|
///
|
|
13
13
|
////
|
|
14
14
|
|
|
15
|
+
@use "../abstracts/mixins" as *;
|
|
16
|
+
|
|
15
17
|
.group {
|
|
16
18
|
|
|
17
19
|
display: flex;
|
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
///
|
|
7
7
|
/// @example <ul class="list">...</ul>, <ol class="list">...</ol> or <div class="list">...</div>
|
|
8
8
|
///
|
|
9
|
-
/// @require {mixin} as-
|
|
9
|
+
/// @require {mixin} as-list
|
|
10
10
|
/// @group components
|
|
11
11
|
/// @author Natacha Herth
|
|
12
|
-
/// @since 1.0.0
|
|
13
12
|
///
|
|
14
13
|
////
|
|
15
14
|
|
|
15
|
+
@use "../abstracts/mixins" as *;
|
|
16
|
+
|
|
16
17
|
.list {
|
|
17
|
-
@include as-list('list', ('focus', 'hover', 'active', 'disabled')
|
|
18
|
+
@include as-list('list', ('focus', 'hover', 'active', 'disabled'))
|
|
18
19
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@forward "./badge";
|
|
2
|
+
@forward "./breadcrumb";
|
|
3
|
+
@forward "./button";
|
|
4
|
+
@forward "./card";
|
|
5
|
+
@forward "./dialog";
|
|
6
|
+
@forward "./disclosure";
|
|
7
|
+
@forward "./dropdown";
|
|
8
|
+
@forward "./form";
|
|
9
|
+
@forward "./group";
|
|
10
|
+
@forward "./list";
|
|
11
|
+
@forward "./loading";
|
|
12
|
+
@forward "./progress";
|
|
13
|
+
@forward "./slider";
|
|
14
|
+
@forward "./table";
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
////
|
|
2
|
+
/// ------------------------------------------------------------------
|
|
3
|
+
/// Main
|
|
4
|
+
/// ------------------------------------------------------------------
|
|
5
|
+
/// This is the main scss generated
|
|
6
|
+
///
|
|
7
|
+
/// @author Natacha Herth
|
|
8
|
+
///
|
|
3
9
|
|
|
4
|
-
@import './utilities/_mixin';
|
|
5
|
-
@import './utilities/_reset';
|
|
6
|
-
@import './utilities/_typography';
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
@
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@
|
|
19
|
-
@import './_loading';
|
|
20
|
-
@import './_media';
|
|
21
|
-
@import './_progress';
|
|
22
|
-
@import './_slider';
|
|
23
|
-
@import './_table';
|
|
11
|
+
// Themes
|
|
12
|
+
@use "./themes/root";
|
|
13
|
+
|
|
14
|
+
// Base
|
|
15
|
+
@use "./base";
|
|
16
|
+
|
|
17
|
+
// Layouts
|
|
18
|
+
@use "./layouts/grid";
|
|
19
|
+
|
|
20
|
+
// Components
|
|
21
|
+
@use "./components";
|