arekui 1.0.0 → 2.0.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 (99) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE +21 -21
  3. package/README.md +26 -198
  4. package/arekui.css +5930 -3279
  5. package/arekui.d.ts +328 -328
  6. package/arekui.js +817 -450
  7. package/assets/img/grunge-wall-texture-freepick-kues1.webp +0 -0
  8. package/assets/img/logo.png +0 -0
  9. package/dist/css/arekui.base.min.css +1 -0
  10. package/dist/css/arekui.broadsheet.min.css +1 -0
  11. package/dist/css/arekui.brutalist.min.css +1 -0
  12. package/dist/css/arekui.default.min.css +1 -0
  13. package/dist/css/arekui.full.min.css +1 -0
  14. package/dist/css/arekui.min.css +1 -0
  15. package/dist/css/arekui.neo.min.css +1 -0
  16. package/dist/css/arekui.pixel.min.css +1 -0
  17. package/dist/js/arekui.min.js +2 -0
  18. package/package.json +64 -57
  19. package/scripts/build-css.js +95 -0
  20. package/scripts/build-custom.js +287 -318
  21. package/scripts/build-js.js +68 -0
  22. package/scripts/clean.js +13 -0
  23. package/scripts/dev.js +97 -0
  24. package/scripts/imports.js +18 -0
  25. package/scripts/split.js +256 -0
  26. package/src/arekui.base.css +63 -0
  27. package/src/arekui.broadsheet.css +6 -0
  28. package/src/arekui.brutalist.css +8 -0
  29. package/src/arekui.core.css +64 -0
  30. package/src/arekui.css +22 -5
  31. package/src/arekui.default.css +6 -0
  32. package/src/arekui.neo.css +8 -0
  33. package/src/arekui.pixel.css +8 -0
  34. package/src/base/brutalist-overrides.css +254 -0
  35. package/src/base/neo-overrides.css +330 -315
  36. package/src/base/pixel-overrides.css +336 -0
  37. package/src/base/reset.css +179 -65
  38. package/src/base/theme-brutalist.css +111 -0
  39. package/src/base/theme-default.css +184 -0
  40. package/src/base/theme-neo.css +108 -0
  41. package/src/base/theme-pixel.css +111 -0
  42. package/src/base/tokens.css +59 -302
  43. package/src/components/accordion.css +32 -33
  44. package/src/components/alert.css +24 -25
  45. package/src/components/badge.css +31 -32
  46. package/src/components/breadcrumb.css +31 -32
  47. package/src/components/broadsheet.css +264 -0
  48. package/src/components/button.css +102 -101
  49. package/src/components/card.css +22 -23
  50. package/src/components/carousel.css +49 -13
  51. package/src/components/chat.css +77 -76
  52. package/src/components/description-list.css +34 -0
  53. package/src/components/docs.css +252 -0
  54. package/src/components/empty.css +36 -0
  55. package/src/components/file-upload.css +49 -50
  56. package/src/components/footer.css +40 -25
  57. package/src/components/forms.css +67 -68
  58. package/src/components/heading.css +27 -0
  59. package/src/components/hero.css +20 -21
  60. package/src/components/join.css +12 -13
  61. package/src/components/kbd.css +15 -0
  62. package/src/components/link.css +22 -23
  63. package/src/components/loading.css +109 -0
  64. package/src/components/menu.css +104 -54
  65. package/src/components/misc.css +94 -55
  66. package/src/components/modal.css +30 -31
  67. package/src/components/navbar.css +166 -36
  68. package/src/components/pagination.css +50 -45
  69. package/src/components/popover.css +68 -69
  70. package/src/components/progress.css +17 -18
  71. package/src/components/prose.css +78 -78
  72. package/src/components/rating.css +35 -36
  73. package/src/components/scroll-top.css +34 -34
  74. package/src/components/segmented.css +44 -0
  75. package/src/components/sidebar.css +377 -0
  76. package/src/components/skeleton.css +52 -52
  77. package/src/components/spinner.css +36 -0
  78. package/src/components/swap.css +43 -43
  79. package/src/components/table.css +20 -21
  80. package/src/components/tabs.css +22 -23
  81. package/src/components/tag.css +99 -99
  82. package/src/components/textured.css +52 -32
  83. package/src/components/timeline.css +32 -33
  84. package/src/components/toast.css +132 -132
  85. package/src/components/tooltip.css +22 -23
  86. package/src/utilities/borders.css +150 -150
  87. package/src/utilities/brutalist-utilities.css +49 -0
  88. package/src/utilities/colors.css +79 -71
  89. package/src/utilities/hover.css +31 -31
  90. package/src/utilities/layout.css +98 -98
  91. package/src/utilities/neo-utilities.css +86 -93
  92. package/src/utilities/pixel-utilities.css +88 -0
  93. package/src/utilities/responsive.css +131 -126
  94. package/src/utilities/sizing.css +98 -89
  95. package/src/utilities/spacing.css +132 -129
  96. package/src/utilities/typography.css +95 -92
  97. package/dist/arekui.min.css +0 -1
  98. package/dist/arekui.min.js +0 -2
  99. package/src/components/drawer.css +0 -53
@@ -1,69 +1,68 @@
1
- /* FORMS */
2
- .ar-fieldset {
3
- display: flex;
4
- flex-direction: column;
5
- gap: var(--ar-s-2);
6
- border: 0;
7
- margin: 0;
8
- padding: 0;
9
- }
10
- .ar-label {
11
- display: flex;
12
- align-items: center;
13
- gap: var(--ar-s-2);
14
- font-weight: 600;
15
- }
16
- .ar-input,
17
- .ar-select,
18
- .ar-textarea {
19
- width: 100%;
20
- border: var(--ar-border-width) solid var(--ar-base-300);
21
- border-radius: var(--ar-radius-field);
22
- background: var(--ar-base-100);
23
- color: var(--ar-base-content);
24
- padding: 0.5rem 0.75rem;
25
- }
26
- .ar-input:focus,
27
- .ar-select:focus,
28
- .ar-textarea:focus {
29
- outline: 2px solid var(--ar-primary);
30
- outline-offset: 0;
31
- border-color: transparent;
32
- }
33
- .ar-checkbox,
34
- .ar-radio {
35
- accent-color: var(--ar-primary);
36
- width: 1.125rem;
37
- height: 1.125rem;
38
- }
39
- .ar-toggle {
40
- position: relative;
41
- appearance: none;
42
- width: 2.75rem;
43
- height: 1.5rem;
44
- border-radius: var(--ar-radius-pill);
45
- background: var(--ar-base-300);
46
- cursor: pointer;
47
- transition: background 0.2s;
48
- }
49
- .ar-toggle::after {
50
- content: "";
51
- position: absolute;
52
- top: 0.1875rem;
53
- left: 0.1875rem;
54
- width: 1.125rem;
55
- height: 1.125rem;
56
- border-radius: var(--ar-radius-pill);
57
- background: var(--ar-base-100);
58
- transition: transform 0.2s;
59
- }
60
- .ar-toggle:checked {
61
- background: var(--ar-primary);
62
- }
63
- .ar-toggle:checked::after {
64
- transform: translateX(1.25rem);
65
- }
66
- .ar-range {
67
- accent-color: var(--ar-primary);
68
- width: 100%;
1
+ .ar-fieldset {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--ar-s-2);
5
+ border: 0;
6
+ margin: 0;
7
+ padding: 0;
8
+ }
9
+ .ar-label {
10
+ display: flex;
11
+ align-items: center;
12
+ gap: var(--ar-s-2);
13
+ font-weight: 600;
14
+ }
15
+ .ar-input,
16
+ .ar-select,
17
+ .ar-textarea {
18
+ width: 100%;
19
+ border: var(--ar-border-width) solid var(--ar-base-300);
20
+ border-radius: var(--ar-radius-field);
21
+ background: var(--ar-base-100);
22
+ color: var(--ar-base-content);
23
+ padding: 0.5rem 0.75rem;
24
+ }
25
+ .ar-input:focus,
26
+ .ar-select:focus,
27
+ .ar-textarea:focus {
28
+ outline: 2px solid var(--ar-primary);
29
+ outline-offset: 0;
30
+ border-color: transparent;
31
+ }
32
+ .ar-checkbox,
33
+ .ar-radio {
34
+ accent-color: var(--ar-primary);
35
+ width: 1.125rem;
36
+ height: 1.125rem;
37
+ }
38
+ .ar-toggle {
39
+ position: relative;
40
+ appearance: none;
41
+ width: 2.75rem;
42
+ height: 1.5rem;
43
+ border-radius: var(--ar-radius-pill);
44
+ background: var(--ar-base-300);
45
+ cursor: pointer;
46
+ transition: background 0.2s;
47
+ }
48
+ .ar-toggle::after {
49
+ content: "";
50
+ position: absolute;
51
+ top: 0.1875rem;
52
+ left: 0.1875rem;
53
+ width: 1.125rem;
54
+ height: 1.125rem;
55
+ border-radius: var(--ar-radius-pill);
56
+ background: var(--ar-base-100);
57
+ transition: transform 0.2s;
58
+ }
59
+ .ar-toggle:checked {
60
+ background: var(--ar-primary);
61
+ }
62
+ .ar-toggle:checked::after {
63
+ transform: translateX(1.25rem);
64
+ }
65
+ .ar-range {
66
+ accent-color: var(--ar-primary);
67
+ width: 100%;
69
68
  }
@@ -0,0 +1,27 @@
1
+ .ar-heading {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--ar-s-2);
5
+ }
6
+ .ar-heading-eyebrow {
7
+ font-size: 0.75rem;
8
+ font-weight: 700;
9
+ letter-spacing: 0.15em;
10
+ text-transform: uppercase;
11
+ color: var(--ar-gray-500);
12
+ }
13
+ .ar-heading-title {
14
+ font-weight: 700;
15
+ letter-spacing: -0.02em;
16
+ line-height: 1.2;
17
+ text-wrap: balance;
18
+ color: var(--ar-base-content);
19
+ }
20
+ .ar-heading-desc {
21
+ line-height: 1.6;
22
+ color: var(--ar-gray-600);
23
+ }
24
+ .ar-heading-center {
25
+ align-items: center;
26
+ text-align: center;
27
+ }
@@ -1,22 +1,21 @@
1
- /* HERO */
2
- .ar-hero {
3
- display: flex;
4
- align-items: center;
5
- justify-content: center;
6
- background: var(--ar-base-200);
7
- padding: var(--ar-s-16) var(--ar-s-6);
8
- }
9
- .ar-hero-content {
10
- display: flex;
11
- flex-direction: column;
12
- align-items: center;
13
- gap: var(--ar-s-6);
14
- text-align: center;
15
- max-width: 64rem;
16
- }
17
- @media (min-width: 1024px) {
18
- .ar-hero-content {
19
- flex-direction: row;
20
- text-align: left;
21
- }
1
+ .ar-hero {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ background: var(--ar-base-200);
6
+ padding: var(--ar-s-16) var(--ar-s-6);
7
+ }
8
+ .ar-hero-content {
9
+ display: flex;
10
+ flex-direction: column;
11
+ align-items: center;
12
+ gap: var(--ar-s-6);
13
+ text-align: center;
14
+ max-width: 64rem;
15
+ }
16
+ @media (min-width: 1024px) {
17
+ .ar-hero-content {
18
+ flex-direction: row;
19
+ text-align: left;
20
+ }
22
21
  }
@@ -1,14 +1,13 @@
1
- /* JOIN */
2
- .ar-join {
3
- display: inline-flex;
4
- align-items: stretch;
5
- border-radius: var(--ar-radius-field);
6
- overflow: hidden;
7
- }
8
- .ar-join-item:not(:first-child) {
9
- border-left-width: 0;
10
- }
11
- .ar-join .ar-btn,
12
- .ar-join-item {
13
- border-radius: 0;
1
+ .ar-join {
2
+ display: inline-flex;
3
+ align-items: stretch;
4
+ border-radius: var(--ar-radius-field);
5
+ overflow: hidden;
6
+ }
7
+ .ar-join-item:not(:first-child) {
8
+ border-left-width: 0;
9
+ }
10
+ .ar-join .ar-btn,
11
+ .ar-join-item {
12
+ border-radius: 0;
14
13
  }
@@ -0,0 +1,15 @@
1
+ /* KEYBOARD KEY */
2
+ .ar-kbd {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ min-width: 1.75rem;
7
+ padding: 0.125rem 0.375rem;
8
+ border: var(--ar-border-width) solid var(--ar-base-300);
9
+ border-bottom-width: calc(var(--ar-border-width) + 1px);
10
+ border-radius: var(--ar-radius-field);
11
+ background: var(--ar-base-200);
12
+ color: var(--ar-base-content);
13
+ font: 600 0.75rem/1.4 var(--ar-font-mono);
14
+ text-align: center;
15
+ }
@@ -1,24 +1,23 @@
1
- /* LINK */
2
- .ar-link {
3
- color: var(--ar-primary);
4
- text-decoration: underline;
5
- cursor: pointer;
6
- }
7
- .ar-link-hover {
8
- text-decoration: none;
9
- }
10
- .ar-link-hover:hover {
11
- text-decoration: underline;
12
- }
13
- .ar-desc a {
14
- text-decoration: underline;
15
- background: var(--ar-desc-grad);
16
- background-size: 200%;
17
- transition:
18
- background-position 0.5s ease-out,
19
- color 0.5s ease-out;
20
- }
21
- .ar-desc a:hover {
22
- background-position: left;
23
- color: var(--ar-arc);
1
+ .ar-link {
2
+ color: var(--ar-primary-text);
3
+ text-decoration: underline;
4
+ cursor: pointer;
5
+ }
6
+ .ar-link-hover {
7
+ text-decoration: none;
8
+ }
9
+ .ar-link-hover:hover {
10
+ text-decoration: underline;
11
+ }
12
+ .ar-desc a {
13
+ text-decoration: underline;
14
+ background: var(--ar-desc-grad);
15
+ background-size: 200%;
16
+ transition:
17
+ background-position 0.5s ease-out,
18
+ color 0.5s ease-out;
19
+ }
20
+ .ar-desc a:hover {
21
+ background-position: left;
22
+ color: var(--ar-arc);
24
23
  }
@@ -0,0 +1,109 @@
1
+ /* LOADING BAR */
2
+ .ar-loading {
3
+ width: 360px;
4
+ max-width: 100%;
5
+ font-family: var(--ar-base-font);
6
+ color: var(--ar-base-content);
7
+ }
8
+ .ar-loading-head {
9
+ display: flex;
10
+ align-items: baseline;
11
+ justify-content: space-between;
12
+ gap: var(--ar-s-3);
13
+ margin-bottom: var(--ar-s-2);
14
+ }
15
+ .ar-loading-label {
16
+ font-family: var(--ar-base-font);
17
+ font-weight: 700;
18
+ font-size: 1.375rem;
19
+ letter-spacing: 0.02em;
20
+ color: var(--ar-base-content);
21
+ line-height: 1;
22
+ }
23
+ .ar-loading-pct {
24
+ font-family: var(--ar-font-mono);
25
+ font-size: 1rem;
26
+ letter-spacing: 0.06em;
27
+ color: var(--ar-primary-text);
28
+ line-height: 1;
29
+ text-transform: uppercase;
30
+ }
31
+ .ar-loading-bar {
32
+ position: relative;
33
+ height: 1.75rem;
34
+ background-color: var(--ar-base-200);
35
+ border: var(--ar-border-width) solid var(--ar-base-content);
36
+ border-radius: var(--ar-radius-field);
37
+ box-shadow: var(--ar-shadow-md);
38
+ overflow: hidden;
39
+ }
40
+ .ar-loading-fill {
41
+ position: absolute;
42
+ inset: 0;
43
+ width: 0%;
44
+ background-color: var(--ar-error);
45
+ border-right: var(--ar-border-width) solid var(--ar-base-content);
46
+ background-image: repeating-linear-gradient(
47
+ to right,
48
+ oklch(100% 0 0 / 0.16) 0 6px,
49
+ transparent 6px 12px
50
+ );
51
+ animation: ar-loading-progress 2.8s cubic-bezier(0.35, 0, 0.3, 1) infinite;
52
+ }
53
+ .ar-loading-pips {
54
+ position: absolute;
55
+ inset: 0;
56
+ display: grid;
57
+ grid-template-columns: repeat(10, 1fr);
58
+ pointer-events: none;
59
+ }
60
+ .ar-loading-pips span {
61
+ display: block;
62
+ border-right: var(--ar-border-width)
63
+ solid color-mix(in srgb, var(--ar-base-content) 28%, transparent);
64
+ }
65
+ .ar-loading-pips span:last-child {
66
+ border-right: none;
67
+ }
68
+ .ar-loading-hint {
69
+ margin: var(--ar-s-3) 0 0;
70
+ font-family: var(--ar-font-mono);
71
+ font-size: 1rem;
72
+ color: var(--ar-gray-600);
73
+ letter-spacing: 0.04em;
74
+ line-height: 1.2;
75
+ text-transform: uppercase;
76
+ }
77
+ .ar-loading-hint kbd {
78
+ font-family: var(--ar-font-mono);
79
+ background-color: var(--ar-base-100);
80
+ border: var(--ar-border-width) solid var(--ar-base-content);
81
+ border-radius: var(--ar-radius-field);
82
+ padding: 1px 0.375rem;
83
+ display: inline-block;
84
+ line-height: 1.1;
85
+ color: var(--ar-base-content);
86
+ }
87
+ @keyframes ar-loading-progress {
88
+ 0% {
89
+ width: 0%;
90
+ background-color: var(--ar-error);
91
+ }
92
+ 35% {
93
+ background-color: var(--ar-error);
94
+ }
95
+ 55% {
96
+ background-color: var(--ar-success);
97
+ }
98
+ 90%,
99
+ 100% {
100
+ width: 100%;
101
+ background-color: var(--ar-primary);
102
+ }
103
+ }
104
+ @media (prefers-reduced-motion: reduce) {
105
+ .ar-loading-fill {
106
+ animation: none;
107
+ width: 65%;
108
+ }
109
+ }
@@ -1,56 +1,106 @@
1
1
  /* MENU & DROPDOWN */
2
- .ar-menu {
3
- display: flex;
4
- flex-direction: column;
5
- list-style: none;
6
- margin: 0;
7
- padding: var(--ar-s-2);
8
- background: var(--ar-base-100);
9
- }
10
- .ar-menu li > a {
11
- display: block;
12
- padding: 0.5rem 0.75rem;
13
- border-radius: var(--ar-radius-field);
14
- color: var(--ar-base-content);
15
- text-decoration: none;
16
- }
17
- .ar-menu li > a:hover {
18
- background: var(--ar-base-200);
19
- }
20
- .ar-menu-horizontal {
21
- flex-direction: row;
22
- align-items: center;
23
- gap: var(--ar-s-2);
24
- }
25
- .ar-menu-sm li > a {
26
- font-size: 0.8rem;
27
- padding: 0.25rem 0.5rem;
28
- }
29
- .ar-dropdown {
30
- position: relative;
31
- display: inline-block;
32
- }
33
- .ar-dropdown-content {
34
- display: none;
35
- position: absolute;
36
- z-index: 20;
37
- min-width: 15rem;
38
- margin-top: 0.75rem;
39
- background: var(--ar-base-100);
40
- border-radius: var(--ar-radius-box);
41
- box-shadow: var(--ar-shadow-lg);
42
- padding: var(--ar-s-2);
43
- }
44
- .ar-dropdown:hover .ar-dropdown-content,
45
- .ar-dropdown:focus-within .ar-dropdown-content,
46
- .ar-dropdown.ar-dropdown-open .ar-dropdown-content {
47
- display: block;
48
- }
49
- .ar-dropdown-content::before {
50
- content: "";
51
- position: absolute;
52
- top: -0.75rem;
53
- left: 0;
54
- right: 0;
55
- height: 0.75rem;
2
+ .ar-menu {
3
+ display: flex;
4
+ flex-direction: column;
5
+ list-style: none;
6
+ margin: 0;
7
+ padding: var(--ar-s-2);
8
+ background: var(--ar-base-100);
9
+ }
10
+ .ar-menu li > a {
11
+ display: block;
12
+ padding: 0.5rem 0.75rem;
13
+ border-radius: var(--ar-radius-field);
14
+ color: var(--ar-base-content);
15
+ text-decoration: none;
16
+ }
17
+ .ar-menu li > a:hover {
18
+ background: var(--ar-base-200);
19
+ }
20
+ .ar-menu li.is-active > a {
21
+ background: var(--ar-base-200);
22
+ color: var(--ar-primary-text);
23
+ font-weight: 700;
24
+ }
25
+ .ar-menu-horizontal {
26
+ flex-direction: row;
27
+ align-items: center;
28
+ gap: var(--ar-s-2);
29
+ }
30
+ .ar-menu-sm li > a {
31
+ font-size: 0.8rem;
32
+ padding: 0.25rem 0.5rem;
33
+ }
34
+
35
+ .ar-menu-icon {
36
+ display: inline-flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ width: 1.25rem;
40
+ margin-right: var(--ar-s-3);
41
+ vertical-align: middle;
42
+ flex: none;
43
+ }
44
+ .ar-menu-text {
45
+ min-width: 0;
46
+ }
47
+ .ar-dropdown {
48
+ position: relative;
49
+ display: inline-block;
50
+ }
51
+ .ar-dropdown-content {
52
+ display: none;
53
+ position: absolute;
54
+ z-index: 20;
55
+ min-width: 15rem;
56
+ margin-top: 0.75rem;
57
+ background: var(--ar-base-100);
58
+ border-radius: var(--ar-radius-box);
59
+ box-shadow: var(--ar-shadow-lg);
60
+ padding: var(--ar-s-2);
61
+ }
62
+ .ar-dropdown:hover .ar-dropdown-content,
63
+ .ar-dropdown:focus-within .ar-dropdown-content,
64
+ .ar-dropdown.ar-dropdown-open .ar-dropdown-content {
65
+ display: block;
66
+ }
67
+ .ar-dropdown-content::before {
68
+ content: "";
69
+ position: absolute;
70
+ top: -0.75rem;
71
+ left: 0;
72
+ right: 0;
73
+ height: 0.75rem;
74
+ }
75
+ .ar-dropdown-end .ar-dropdown-content {
76
+ top: 100%;
77
+ right: 0;
78
+ left: auto;
79
+ }
80
+ .ar-theme-menu {
81
+ min-width: 11rem;
82
+ }
83
+ .ar-theme-menu li > button {
84
+ display: block;
85
+ width: 100%;
86
+ text-align: left;
87
+ padding: 0.5rem 0.75rem;
88
+ font: inherit;
89
+ color: var(--ar-base-content);
90
+ background: transparent;
91
+ border: 1px solid transparent;
92
+ border-radius: var(--ar-radius-field);
93
+ cursor: pointer;
94
+ }
95
+ .ar-theme-menu li > button:hover {
96
+ background: var(--ar-base-200);
97
+ }
98
+ .ar-theme-menu li > button.ar-btn-primary {
99
+ background: transparent;
100
+ border-color: transparent;
101
+ color: var(--ar-primary-text);
102
+ font-weight: 700;
103
+ }
104
+ .ar-theme-menu li > button.ar-btn-primary::before {
105
+ content: "\2713\00a0";
56
106
  }