@anyblades/blades 3.1.0-beta.4 → 3.1.0-beta.6

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 (90) hide show
  1. package/.prettierrc.json +0 -7
  2. package/README.md +20 -10
  3. package/_includes/.prettierrc.json +12 -0
  4. package/_includes/package.json +10 -0
  5. package/css/blades.css +942 -1805
  6. package/css/blades.min.css +11 -1
  7. package/css/blades.ninja.css +1124 -2265
  8. package/css/blades.ninja.min.css +16 -1
  9. package/css/float-label.css +34 -187
  10. package/css/float-label.min.css +1 -1
  11. package/css/layered/blades.layered.css +942 -1805
  12. package/css/layered/blades.layered.min.css +11 -1
  13. package/css/layered/compact.css +10 -31
  14. package/css/layered/components/accordion.css +32 -21
  15. package/css/layered/components/card.css +8 -16
  16. package/css/layered/components/dropdown-popover.css +92 -0
  17. package/css/layered/components/dropdown.css +61 -61
  18. package/css/layered/components/group.css +40 -156
  19. package/css/layered/components/loading.css +28 -35
  20. package/css/layered/components/modal-modern.css +20 -0
  21. package/css/layered/components/modal.css +54 -65
  22. package/css/layered/components/nav.css +36 -36
  23. package/css/layered/components/progress.css +18 -23
  24. package/css/layered/components/timeline.css +10 -0
  25. package/css/layered/components/tooltip.css +88 -103
  26. package/css/layered/components.css +371 -517
  27. package/css/layered/content/button.css +37 -117
  28. package/css/layered/content/code-block.css +20 -0
  29. package/css/layered/content/code.css +11 -26
  30. package/css/layered/content/embedded-content.css +5 -10
  31. package/css/layered/content/figure.css +3 -5
  32. package/css/layered/content/icon.css +33 -0
  33. package/css/layered/content/link.css +18 -40
  34. package/css/layered/content/misc.css +1 -5
  35. package/css/layered/content/table.css +4 -10
  36. package/css/layered/content/typography.css +22 -41
  37. package/css/layered/content.css +102 -254
  38. package/css/layered/forms/basics.css +64 -142
  39. package/css/layered/forms/checkbox-radio-switch.css +46 -75
  40. package/css/layered/forms/float-label/core.css +31 -0
  41. package/css/layered/forms/float-label/theme.css +28 -0
  42. package/css/layered/forms/float-label.css +57 -0
  43. package/css/layered/forms/input-color.css +5 -5
  44. package/css/layered/forms/input-datetime.css +9 -26
  45. package/css/layered/forms/input-file.css +7 -8
  46. package/css/layered/forms/input-range.css +43 -50
  47. package/css/layered/forms/input-search.css +16 -47
  48. package/css/layered/forms.css +197 -355
  49. package/css/layered/layout/columns.css +10 -0
  50. package/css/layered/layout/container.css +13 -13
  51. package/css/layered/layout/document.css +4 -12
  52. package/css/layered/layout/grid.css +6 -8
  53. package/css/layered/layout/landmarks.css +1 -7
  54. package/css/layered/layout/overflow-auto.css +0 -3
  55. package/css/layered/layout/section.css +0 -3
  56. package/css/layered/layout.css +26 -39
  57. package/css/layered/utilities.css +6 -15
  58. package/css/layered/variables-blades.css +11 -0
  59. package/css/layered/variables.css +77 -181
  60. package/css/pico.conditional.css +785 -1368
  61. package/css/pico.conditional.min.css +1 -1
  62. package/css/pico.css +785 -1368
  63. package/css/pico.min.css +1 -1
  64. package/package.json +13 -26
  65. package/src/blades/_index.css +9 -9
  66. package/src/blades/{_dropdown-popover.css → components/_dropdown-popover.css} +3 -3
  67. package/src/blades/forms/float-label/_index.css +2 -0
  68. package/src/blades.css +2 -2
  69. package/src/blades.ninja.css +3 -3
  70. package/src/float-label.css +1 -1
  71. package/src/ninja/_index.css +7 -8
  72. package/src/pico/_index.css +6 -6
  73. package/src/pico/components/_index.css +9 -9
  74. package/src/pico/content/_index.css +8 -8
  75. package/src/pico/forms/_index.css +7 -7
  76. package/src/pico/layout/_index.css +5 -5
  77. package/src/pico.css +2 -2
  78. package/_includes/blades/links.liquid +0 -21
  79. package/_includes/blades/links.njk +0 -9
  80. package/_includes/blades/links.twig +0 -18
  81. package/src/blades/float-label/_index.css +0 -2
  82. package/src/ninja/_page-anchors.css +0 -10
  83. /package/src/blades/{_variables.css → _variables-blades.css} +0 -0
  84. /package/src/blades/{_modal.css → components/_modal-modern.css} +0 -0
  85. /package/src/blades/{_timeline.css → components/_timeline.css} +0 -0
  86. /package/src/blades/{_code.css → content/_code-block.css} +0 -0
  87. /package/src/blades/{_icon.css → content/_icon.css} +0 -0
  88. /package/src/blades/{float-label → forms/float-label}/_core.css +0 -0
  89. /package/src/blades/{float-label → forms/float-label}/_theme.css +0 -0
  90. /package/src/blades/{_columns.css → layout/_columns.css} +0 -0
@@ -0,0 +1,57 @@
1
+ @layer blades {
2
+ /*!
3
+ * Float Label CSS v2 by Blades CSS 🥷🏷️
4
+ * Copyright 2016–2026 (https://blades.ninja/css/float-label/)
5
+ * Licensed under MIT
6
+ */
7
+ label:has( > span):has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select), .has-float-label {
8
+ display: block;
9
+ position: relative;
10
+
11
+ & > span, & label {
12
+ cursor: text;
13
+ font-size: 75%;
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ }
18
+
19
+ & :placeholder-shown:not(:focus)::placeholder {
20
+ opacity: 0;
21
+ }
22
+
23
+ &:has(:placeholder-shown:not(:focus)) {
24
+ & > span, & label {
25
+ font-size: inherit;
26
+ opacity: .5;
27
+ }
28
+ }
29
+ }
30
+
31
+ label:has( > span):has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select), .has-float-label {
32
+ & > span, & label {
33
+ opacity: .75;
34
+ padding-block-start: .25rem;
35
+ padding-inline-start: calc(1rem + 1px);
36
+ transition: all .25s;
37
+ }
38
+
39
+ & input, & textarea, & select {
40
+ margin-block-start: 0;
41
+ padding-block: 1.125rem .375rem;
42
+ padding-inline-start: 1rem;
43
+
44
+ &::placeholder {
45
+ opacity: 1;
46
+ transition: all .25s;
47
+ }
48
+ }
49
+
50
+ &:has(:placeholder-shown:not(:focus)) {
51
+ & > span, & label {
52
+ padding-block: .75rem;
53
+ }
54
+ }
55
+ }
56
+
57
+ }
@@ -1,20 +1,20 @@
1
1
  @layer blades {
2
- /**
3
- * Input type color
4
- */
5
2
  [type="color"]::-webkit-color-swatch-wrapper {
6
3
  padding: 0;
7
4
  }
5
+
8
6
  [type="color"]::-moz-focus-inner {
9
7
  padding: 0;
10
8
  }
9
+
11
10
  [type="color"]::-webkit-color-swatch {
11
+ border-radius: calc(var(--pico-border-radius) * .5);
12
12
  border: 0;
13
- border-radius: calc(var(--pico-border-radius) * 0.5);
14
13
  }
14
+
15
15
  [type="color"]::-moz-color-swatch {
16
+ border-radius: calc(var(--pico-border-radius) * .5);
16
17
  border: 0;
17
- border-radius: calc(var(--pico-border-radius) * 0.5);
18
18
  }
19
19
 
20
20
  }
@@ -1,38 +1,25 @@
1
1
  @layer blades {
2
- /**
3
- * Input type datetime
4
- */
5
- :where(:scope),
6
- :host {
2
+ :where(:scope), :host {
7
3
  --pico-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
8
4
  --pico-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
9
5
  }
10
6
 
11
- input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is(
12
- [type="date"],
13
- [type="datetime-local"],
14
- [type="month"],
15
- [type="time"],
16
- [type="week"]
17
- ) {
18
- --pico-icon-position: 0.75rem;
7
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
8
+ --pico-icon-position: .75rem;
19
9
  --pico-icon-width: 1rem;
20
- min-width: 0;
21
10
  padding-right: calc(var(--pico-icon-width) + var(--pico-icon-position));
22
11
  background-image: var(--pico-icon-date);
23
12
  background-position: center right var(--pico-icon-position);
24
13
  background-size: var(--pico-icon-width) auto;
25
14
  background-repeat: no-repeat;
15
+ min-width: 0;
26
16
  }
17
+
27
18
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="time"] {
28
19
  background-image: var(--pico-icon-time);
29
20
  }
30
21
 
31
- [type="date"]::-webkit-calendar-picker-indicator,
32
- [type="datetime-local"]::-webkit-calendar-picker-indicator,
33
- [type="month"]::-webkit-calendar-picker-indicator,
34
- [type="time"]::-webkit-calendar-picker-indicator,
35
- [type="week"]::-webkit-calendar-picker-indicator {
22
+ [type="date"]::-webkit-calendar-picker-indicator, [type="datetime-local"]::-webkit-calendar-picker-indicator, [type="month"]::-webkit-calendar-picker-indicator, [type="time"]::-webkit-calendar-picker-indicator, [type="week"]::-webkit-calendar-picker-indicator {
36
23
  width: var(--pico-icon-width);
37
24
  margin-right: calc(var(--pico-icon-width) * -1);
38
25
  margin-left: var(--pico-icon-position);
@@ -40,17 +27,13 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
40
27
  }
41
28
 
42
29
  @-moz-document url-prefix() {
43
- [type="date"],
44
- [type="datetime-local"],
45
- [type="month"],
46
- [type="time"],
47
- [type="week"] {
30
+ [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"] {
48
31
  padding-right: var(--pico-form-element-spacing-horizontal) !important;
49
32
  background-image: none !important;
50
33
  }
51
34
  }
52
- [dir="rtl"]
53
- :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
35
+
36
+ [dir="rtl"] :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
54
37
  text-align: end;
55
38
  }
56
39
 
@@ -1,28 +1,27 @@
1
1
  @layer blades {
2
- /**
3
- * Input type file
4
- */
5
2
  [type="file"] {
6
3
  --pico-color: var(--pico-muted-color);
7
4
  margin-left: calc(var(--pico-outline-width) * -1);
8
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) 0;
5
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5) 0;
9
6
  padding-left: var(--pico-outline-width);
7
+ background: none;
10
8
  border: 0;
11
9
  border-radius: 0;
12
- background: none;
13
10
  }
11
+
14
12
  [type="file"]::file-selector-button {
15
13
  margin-right: calc(var(--pico-spacing) / 2);
16
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
14
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
17
15
  var(--pico-form-element-spacing-horizontal);
18
16
  }
17
+
19
18
  [type="file"]:is(:hover, :active, :focus)::file-selector-button {
20
19
  --pico-background-color: var(--pico-secondary-hover-background);
21
20
  --pico-border-color: var(--pico-secondary-hover-border);
22
21
  }
22
+
23
23
  [type="file"]:focus::file-selector-button {
24
- --pico-box-shadow:
25
- var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
24
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
26
25
  0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
27
26
  }
28
27
 
@@ -1,9 +1,5 @@
1
1
  @layer blades {
2
- /**
3
- * Input type range
4
- */
5
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
6
- :host {
2
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
7
3
  --pico-range-border-color: light-dark(#dfe3eb, #202632);
8
4
  --pico-range-active-border-color: light-dark(#bfc7d9, #2a3140);
9
5
  --pico-range-thumb-border-color: var(--pico-background-color);
@@ -15,105 +11,102 @@
15
11
  -webkit-appearance: none;
16
12
  -moz-appearance: none;
17
13
  appearance: none;
14
+ background: none;
18
15
  width: 100%;
19
16
  height: 1.25rem;
20
- background: none;
21
17
  }
18
+
22
19
  [type="range"]::-webkit-slider-runnable-track {
23
- width: 100%;
24
- height: 0.375rem;
25
20
  border-radius: var(--pico-border-radius);
26
21
  background-color: var(--pico-range-border-color);
27
- -webkit-transition:
28
- background-color var(--pico-transition),
22
+ width: 100%;
23
+ height: .375rem;
24
+ -webkit-transition: background-color var(--pico-transition),
29
25
  box-shadow var(--pico-transition);
30
- transition:
31
- background-color var(--pico-transition),
26
+ transition: background-color var(--pico-transition),
32
27
  box-shadow var(--pico-transition);
33
28
  }
29
+
34
30
  [type="range"]::-moz-range-track {
35
- width: 100%;
36
- height: 0.375rem;
37
31
  border-radius: var(--pico-border-radius);
38
32
  background-color: var(--pico-range-border-color);
39
- -moz-transition:
40
- background-color var(--pico-transition),
33
+ width: 100%;
34
+ height: .375rem;
35
+ -moz-transition: background-color var(--pico-transition),
41
36
  box-shadow var(--pico-transition);
42
- transition:
43
- background-color var(--pico-transition),
37
+ transition: background-color var(--pico-transition),
44
38
  box-shadow var(--pico-transition);
45
39
  }
40
+
46
41
  [type="range"]::-ms-track {
47
- width: 100%;
48
- height: 0.375rem;
49
42
  border-radius: var(--pico-border-radius);
50
43
  background-color: var(--pico-range-border-color);
51
- -ms-transition:
52
- background-color var(--pico-transition),
44
+ width: 100%;
45
+ height: .375rem;
46
+ -ms-transition: background-color var(--pico-transition),
53
47
  box-shadow var(--pico-transition);
54
- transition:
55
- background-color var(--pico-transition),
48
+ transition: background-color var(--pico-transition),
56
49
  box-shadow var(--pico-transition);
57
50
  }
51
+
58
52
  [type="range"]::-webkit-slider-thumb {
59
53
  -webkit-appearance: none;
60
- width: 1.25rem;
61
- height: 1.25rem;
62
- margin-top: -0.4375rem;
63
54
  border: 2px solid var(--pico-range-thumb-border-color);
64
- border-radius: 50%;
65
55
  background-color: var(--pico-range-thumb-color);
66
56
  cursor: pointer;
67
- -webkit-transition:
68
- background-color var(--pico-transition),
57
+ width: 1.25rem;
58
+ height: 1.25rem;
59
+ -webkit-transition: background-color var(--pico-transition),
69
60
  transform var(--pico-transition);
70
- transition:
71
- background-color var(--pico-transition),
61
+ transition: background-color var(--pico-transition),
72
62
  transform var(--pico-transition);
63
+ border-radius: 50%;
64
+ margin-top: -.4375rem;
73
65
  }
66
+
74
67
  [type="range"]::-moz-range-thumb {
75
68
  -webkit-appearance: none;
76
- width: 1.25rem;
77
- height: 1.25rem;
78
- margin-top: -0.4375rem;
79
69
  border: 2px solid var(--pico-range-thumb-border-color);
80
- border-radius: 50%;
81
70
  background-color: var(--pico-range-thumb-color);
82
71
  cursor: pointer;
83
- -moz-transition:
84
- background-color var(--pico-transition),
72
+ width: 1.25rem;
73
+ height: 1.25rem;
74
+ -moz-transition: background-color var(--pico-transition),
85
75
  transform var(--pico-transition);
86
- transition:
87
- background-color var(--pico-transition),
76
+ transition: background-color var(--pico-transition),
88
77
  transform var(--pico-transition);
78
+ border-radius: 50%;
79
+ margin-top: -.4375rem;
89
80
  }
81
+
90
82
  [type="range"]::-ms-thumb {
91
83
  -webkit-appearance: none;
92
- width: 1.25rem;
93
- height: 1.25rem;
94
- margin-top: -0.4375rem;
95
84
  border: 2px solid var(--pico-range-thumb-border-color);
96
- border-radius: 50%;
97
85
  background-color: var(--pico-range-thumb-color);
98
86
  cursor: pointer;
99
- -ms-transition:
100
- background-color var(--pico-transition),
87
+ width: 1.25rem;
88
+ height: 1.25rem;
89
+ -ms-transition: background-color var(--pico-transition),
101
90
  transform var(--pico-transition);
102
- transition:
103
- background-color var(--pico-transition),
91
+ transition: background-color var(--pico-transition),
104
92
  transform var(--pico-transition);
93
+ border-radius: 50%;
94
+ margin-top: -.4375rem;
105
95
  }
106
- [type="range"]:active,
107
- [type="range"]:focus-within {
96
+
97
+ [type="range"]:active, [type="range"]:focus-within {
108
98
  --pico-range-border-color: var(--pico-range-active-border-color);
109
99
  --pico-range-thumb-color: var(--pico-range-thumb-active-color);
110
100
  }
101
+
111
102
  [type="range"]:active::-webkit-slider-thumb {
112
103
  transform: scale(1.25);
113
104
  }
105
+
114
106
  [type="range"]:active::-moz-range-thumb {
115
107
  transform: scale(1.25);
116
108
  }
109
+
117
110
  [type="range"]:active::-ms-thumb {
118
111
  transform: scale(1.25);
119
112
  }
@@ -1,66 +1,35 @@
1
1
  @layer blades {
2
- /**
3
- * Input type search
4
- */
5
- :where(:scope),
6
- :host {
2
+ :where(:scope), :host {
7
3
  --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
8
4
  }
9
5
 
10
6
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
11
- padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
12
7
  background-image: var(--pico-icon-search);
13
- background-position: center left calc(var(--pico-form-element-spacing-horizontal) + 0.125rem);
14
- background-size: 1rem auto;
8
+ background-position: center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);
15
9
  background-repeat: no-repeat;
10
+ background-size: 1rem;
11
+ padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
16
12
  }
17
- input:not(
18
- [type="checkbox"],
19
- [type="radio"],
20
- [type="range"],
21
- [type="file"]
22
- )[type="search"][aria-invalid] {
13
+
14
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid] {
15
+ background-position: 1.125rem, right .75rem center;
23
16
  padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem) !important;
24
- background-position:
25
- center left 1.125rem,
26
- center right 0.75rem;
27
17
  }
28
- input:not(
29
- [type="checkbox"],
30
- [type="radio"],
31
- [type="range"],
32
- [type="file"]
33
- )[type="search"][aria-invalid="false"] {
18
+
19
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid="false"] {
34
20
  background-image: var(--pico-icon-search), var(--pico-icon-valid);
35
21
  }
36
- input:not(
37
- [type="checkbox"],
38
- [type="radio"],
39
- [type="range"],
40
- [type="file"]
41
- )[type="search"][aria-invalid="true"] {
22
+
23
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid="true"] {
42
24
  background-image: var(--pico-icon-search), var(--pico-icon-invalid);
43
25
  }
44
26
 
45
- [dir="rtl"]
46
- :where(input):not(
47
- [type="checkbox"],
48
- [type="radio"],
49
- [type="range"],
50
- [type="file"]
51
- )[type="search"] {
52
- background-position: center right 1.125rem;
27
+ [dir="rtl"] :where(input):not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
28
+ background-position: right 1.125rem center;
53
29
  }
54
- [dir="rtl"]
55
- :where(input):not(
56
- [type="checkbox"],
57
- [type="radio"],
58
- [type="range"],
59
- [type="file"]
60
- )[type="search"][aria-invalid] {
61
- background-position:
62
- center right 1.125rem,
63
- center left 0.75rem;
30
+
31
+ [dir="rtl"] :where(input):not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid] {
32
+ background-position: right 1.125rem center, .75rem;
64
33
  }
65
34
 
66
35
  }