@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.
Files changed (71) hide show
  1. package/.gitlab-ci.yml +7 -0
  2. package/docs/pages/{components → base}/media.html +2 -2
  3. package/docs/pages/{layout → base}/reset.html +2 -2
  4. package/docs/pages/{layout → base}/typography.html +2 -2
  5. package/docs/pages/components/badge.html +2 -2
  6. package/docs/pages/components/breadcrumb.html +1 -1
  7. package/docs/pages/components/button.html +2 -2
  8. package/docs/pages/components/card.html +1 -1
  9. package/docs/pages/components/dialog.html +1 -1
  10. package/docs/pages/components/disclosure.html +1 -1
  11. package/docs/pages/components/dropdown.html +2 -2
  12. package/docs/pages/components/form.html +2 -2
  13. package/docs/pages/components/list.html +1 -1
  14. package/docs/pages/components/loading.html +1 -1
  15. package/docs/pages/components/progress.html +1 -1
  16. package/docs/pages/components/slider.html +1 -1
  17. package/docs/pages/components/table.html +1 -1
  18. package/docs/pages/{layout → layouts}/grid.html +1 -1
  19. package/docs/pages/quick-start/conventions.html +7 -7
  20. package/docs/pages/quick-start/customization.html +59 -62
  21. package/docs/pages/quick-start/installation.html +31 -28
  22. package/docs/pages/quick-start/mixins.html +29 -11
  23. package/docs/src/js/demo.js +1 -1
  24. package/docs/src/js/doc-layout.js +9 -6
  25. package/docs/src/scss/demo.scss +2 -2
  26. package/docs/src/scss/layout.scss +1 -1
  27. package/docs/src/scss/style.scss +2 -2
  28. package/esbuild.mjs +1 -1
  29. package/js/_autofill.js +0 -1
  30. package/js/_check-all.js +0 -1
  31. package/js/_comfort.js +0 -1
  32. package/js/_consent.js +0 -1
  33. package/js/_dialog.js +0 -1
  34. package/js/_dropdown.js +0 -1
  35. package/js/_scroll.js +0 -1
  36. package/js/_sidebar.js +0 -1
  37. package/js/_slider.js +0 -1
  38. package/js/_sortable.js +0 -1
  39. package/js/_tabpanel.js +0 -1
  40. package/js/_toggle.js +0 -1
  41. package/js/_tree.js +0 -1
  42. package/js/utilities/_base-component.js +0 -1
  43. package/js/utilities/_cookie.js +0 -1
  44. package/js/utilities/_error.js +0 -1
  45. package/js/utilities/_form-helper.js +0 -1
  46. package/package.json +2 -2
  47. package/scss/abstracts/_default.scss +21 -0
  48. package/scss/{utilities/_mixin.scss → abstracts/_mixins.scss} +49 -15
  49. package/scss/{variables/_setting.scss → abstracts/_options.scss} +5 -24
  50. package/scss/{_media.scss → base/_media.scss} +1 -2
  51. package/scss/{utilities → base}/_reset.scss +2 -3
  52. package/scss/{utilities → base}/_typography.scss +1 -2
  53. package/scss/base/index.scss +3 -0
  54. package/scss/{_badge.scss → components/_badge.scss} +5 -4
  55. package/scss/{_breadcrumb.scss → components/_breadcrumb.scss} +0 -1
  56. package/scss/{_button.scss → components/_button.scss} +2 -1
  57. package/scss/{_card.scss → components/_card.scss} +9 -8
  58. package/scss/{_dialog.scss → components/_dialog.scss} +7 -23
  59. package/scss/{_disclosure.scss → components/_disclosure.scss} +2 -1
  60. package/scss/{_dropdown.scss → components/_dropdown.scss} +7 -6
  61. package/scss/{_form.scss → components/_form.scss} +2 -1
  62. package/scss/{_group.scss → components/_group.scss} +3 -1
  63. package/scss/{_list.scss → components/_list.scss} +4 -3
  64. package/scss/{_loading.scss → components/_loading.scss} +0 -1
  65. package/scss/{_progress.scss → components/_progress.scss} +0 -1
  66. package/scss/{_slider.scss → components/_slider.scss} +0 -1
  67. package/scss/{_table.scss → components/_table.scss} +0 -1
  68. package/scss/components/index.scss +14 -0
  69. package/scss/{_grid.scss → layouts/_grid.scss} +1 -2
  70. package/scss/{variables → themes}/_root.scss +0 -1
  71. package/scss/vanilla-frontend.scss +19 -21
@@ -4,9 +4,8 @@
4
4
  /// ------------------------------------------------------------------
5
5
  /// This file define the basic typographic elements.
6
6
  ///
7
- /// @group typography
7
+ /// @group base
8
8
  /// @author Natacha Herth
9
- /// @since 1.0.0
10
9
  ///
11
10
  ////
12
11
 
@@ -0,0 +1,3 @@
1
+ @forward "./reset";
2
+ @forward "./typography";
3
+ @forward "./media";
@@ -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
- $custom: (
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
- $properties: map.merge($default-item-properties, $custom);
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', (), $properties);
36
+ @include as-item('badge', (), $customBadgeProperties);
36
37
 
37
38
  }
@@ -8,7 +8,6 @@
8
8
  ///
9
9
  /// @group components
10
10
  /// @author Natacha Herth
11
- /// @since 1.0.0
12
11
  ///
13
12
  ////
14
13
 
@@ -9,10 +9,11 @@
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
 
15
+ @use "../abstracts/mixins" as *;
16
+
16
17
  button,
17
18
  [type=button],
18
19
  [type=reset],
@@ -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
- $custom: (
19
+ $customCard: (
19
20
  padding-block: 1rem,
20
21
  padding-inline: 1rem
21
22
  );
22
23
 
23
24
  // Change default properties
24
- $properties: map.merge($default-item-properties, $custom);
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', (), $properties);
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($custom, padding-inline)) * -1);
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($custom, padding-block)) / 2) var(--card-padding-inline, map.get($custom, padding-inline));
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($custom, padding-block)) * -1);
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($custom, padding-block)) * -1);
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
- $custom: (
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
- $properties: map.merge($default-item-properties, $custom);
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', (), $properties);
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
- > header,
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
 
@@ -9,10 +9,11 @@
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
 
15
+ @use "../abstracts/mixins" as *;
16
+
16
17
  details {
17
18
 
18
19
  > summary {
@@ -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
- $custom: (
20
+ $customDropdown: (
19
21
  background: var(--color-body)
20
22
  );
21
23
 
22
24
  // Change default properties
23
- $properties: map.merge($default-item-properties, $custom);
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', (), $properties);
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'), $properties);
64
+ @include as-list('dropdown', ('focus', 'hover', 'active', 'disabled'), $customDropdownProperties);
64
65
  }
65
66
 
66
67
  }
@@ -9,10 +9,11 @@
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
 
15
+ @use "../abstracts/mixins" as *;
16
+
16
17
  label,
17
18
  fieldset legend {
18
19
  display: block;
@@ -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-item
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'), $properties)
18
+ @include as-list('list', ('focus', 'hover', 'active', 'disabled'))
18
19
  }
@@ -8,7 +8,6 @@
8
8
  ///
9
9
  /// @group components
10
10
  /// @author Natacha Herth
11
- /// @since 1.0.0
12
11
  ///
13
12
  ////
14
13
 
@@ -8,7 +8,6 @@
8
8
  ///
9
9
  /// @group components
10
10
  /// @author Natacha Herth
11
- /// @since 1.0.0
12
11
  ///
13
12
  ////
14
13
 
@@ -8,7 +8,6 @@
8
8
  ///
9
9
  /// @group components
10
10
  /// @author Natacha Herth
11
- /// @since 1.0.0
12
11
  ///
13
12
  ////
14
13
 
@@ -8,7 +8,6 @@
8
8
  ///
9
9
  /// @group components
10
10
  /// @author Natacha Herth
11
- /// @since 1.0.0
12
11
  ///
13
12
  ////
14
13
 
@@ -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";
@@ -6,9 +6,8 @@
6
6
  ///
7
7
  /// @example <div class="grid">...</div> or <div class="flex-grid">...</div>
8
8
  ///
9
- /// @group components
9
+ /// @group layouts
10
10
  /// @author Natacha Herth
11
- /// @since 1.0.0
12
11
  ///
13
12
  ////
14
13
 
@@ -6,7 +6,6 @@
6
6
  ///
7
7
  /// @group themes
8
8
  /// @author Natacha Herth
9
- /// @since 0.0.1
10
9
  ///
11
10
  ////
12
11
 
@@ -1,23 +1,21 @@
1
- @import './variables/_root';
2
- @import './variables/_setting';
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
- @import './_badge';
9
- @import './_breadcrumb';
10
- @import './_button';
11
- @import './_card';
12
- @import './_dialog';
13
- @import './_disclosure';
14
- @import './_dropdown';
15
- @import './_form';
16
- @import './_grid';
17
- @import './_group';
18
- @import './_list';
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";