@newlogic-digital/ui 3.2.0 → 3.3.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/.eslintrc +13 -0
- package/.stylelintrc +18 -0
- package/README.md +1 -5
- package/package.json +16 -8
- package/public/sw.js +30 -0
- package/src/data/main.json +5 -0
- package/src/emails/email.prod.html +6 -0
- package/src/emails/email.twig.html +6 -0
- package/src/emails/{email.css → styles/email.css} +1 -1
- package/src/emails/templates/Content.twig +16 -0
- package/src/emails/templates/Header.twig +14 -0
- package/src/emails/templates/Layout.twig +23 -0
- package/src/emails/templates.prod/.gitkeep +0 -0
- package/src/scripts/Layout/Main.js +3 -3
- package/src/scripts/Libraries/Dialog.js +8 -1
- package/src/scripts/Libraries/Drawer.js +16 -14
- package/src/scripts/Libraries/Form.js +12 -18
- package/src/scripts/Libraries/NativeSlider.js +2 -1
- package/src/scripts/Libraries/ReCaptcha.js +9 -4
- package/src/scripts/Libraries/Stimulus.js +1 -31
- package/src/scripts/Libraries/Swup.js +5 -1
- package/src/scripts/Libraries/Tabs.js +5 -5
- package/src/scripts/Libraries/Tippy.js +3 -1
- package/src/scripts/Ui/+.js +0 -1
- package/src/scripts/Ui/Checkbox.js +4 -13
- package/src/scripts/Ui/Input.js +18 -64
- package/src/scripts/Ui/Select.js +11 -39
- package/src/scripts/Ui/Text.js +2 -4
- package/src/scripts/Utils/Functions/+.js +1 -0
- package/src/scripts/Utils/Functions/checkValidity.js +44 -0
- package/src/scripts/Utils/Functions/inView.js +7 -8
- package/src/scripts/Utils/cdn.js +1 -1
- package/src/scripts/Utils/global.js +6 -8
- package/src/styles/Components/+.css +1 -1
- package/src/styles/Components/Dropdown/+.css +1 -0
- package/src/styles/{Ui/Dropdown.css → Components/Dropdown/Default.css} +1 -1
- package/src/styles/Libraries/+.css +0 -1
- package/src/styles/Libraries/Drawer.css +1 -1
- package/src/styles/Libraries/Hint.css +4 -3
- package/src/styles/Libraries/NativeSlider.css +8 -0
- package/src/styles/Libraries/Tippy.css +1 -1
- package/src/styles/Ui/+.css +0 -1
- package/src/styles/Ui/Badge.css +1 -1
- package/src/styles/Ui/Btn.css +24 -6
- package/src/styles/Ui/Checkbox.css +28 -2
- package/src/styles/Ui/Heading.css +2 -1
- package/src/styles/Ui/Icon.css +2 -2
- package/src/styles/Ui/Image.css +1 -7
- package/src/styles/Ui/Input.css +65 -18
- package/src/styles/Ui/Label.css +2 -2
- package/src/styles/Ui/Link.css +12 -5
- package/src/styles/Ui/Notice.css +1 -1
- package/src/styles/Ui/Select.css +3 -5
- package/src/styles/Ui/Text.css +13 -4
- package/src/styles/Ui/Title.css +3 -2
- package/src/styles/Utils/+.css +9 -9
- package/src/styles/Utils/default.css +0 -7
- package/src/styles/Utils/tailwind/+.css +2 -2
- package/src/styles/Utils/tailwind/base.css +25 -0
- package/src/styles/Utils/theme/+.css +1 -1
- package/src/styles/Utils/vars.css +32 -8
- package/src/templates/Layout/Main.twig +0 -6
- package/src/templates/Sections/Ui/Docs/@intro.html +97 -0
- package/src/templates/Sections/Ui/Docs/@nav.html +195 -0
- package/src/templates/Sections/Ui/Docs/@styles.html +100 -0
- package/src/templates/Sections/Ui/Docs/Default.twig +1600 -0
- package/src/templates/Sections/Ui/Icons.html +28 -0
- package/src/templates/Sections/Ui/Intro.html +136 -0
- package/src/templates/Sections/Ui.twig +5 -2090
- package/src/templates/Utils/sections.twig +2 -2
- package/src/views/{dialog-basic.json.twig → dialog/basic.json.twig} +0 -0
- package/src/views/{json-tippy.json.twig → dropdown/tippy.json.twig} +3 -3
- package/src/views/gdpr.json +2 -1
- package/src/views/index.json +2 -2
- package/src/views/ui-icons.json +12 -0
- package/src/views/ui.json +2 -2
- package/tailwind.config.cjs +69 -0
- package/vite.config.js +5 -1
- package/src/emails/email.twig +0 -60
- package/src/scripts/Ui/Radio.js +0 -23
- package/src/styles/Components/Item/+.css +0 -1
- package/src/styles/Libraries/Lazysizes.css +0 -9
package/src/styles/Ui/Input.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.ui-input, .ui-select {
|
|
1
|
+
:is(.ui-input, .ui-select) {
|
|
2
2
|
--ui-input-height: 3rem;
|
|
3
3
|
--ui-input-height-textarea: 8rem;
|
|
4
4
|
--ui-input-py: 0.75rem;
|
|
@@ -50,16 +50,16 @@
|
|
|
50
50
|
margin-top: calc(var(--ui-input-size) / 2 * -1);
|
|
51
51
|
order: -1;
|
|
52
52
|
|
|
53
|
-
@nest
|
|
53
|
+
@nest :has(.icon-l)& {
|
|
54
54
|
left: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
@nest
|
|
57
|
+
@nest :has(.icon-r)& {
|
|
58
58
|
right: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
& > :
|
|
62
|
+
& > :where(input, textarea, select, .input) {
|
|
63
63
|
width: 100%;
|
|
64
64
|
transition: var(--transition-border), var(--transition-shadow);
|
|
65
65
|
box-shadow: none;
|
|
@@ -69,10 +69,15 @@
|
|
|
69
69
|
height: var(--ui-input-height);
|
|
70
70
|
font-weight: var(--ui-input-weight);
|
|
71
71
|
border-radius: var(--ui-input-radius);
|
|
72
|
-
padding:
|
|
72
|
+
padding: var(--ui-input-py) var(--ui-input-px);
|
|
73
73
|
color: inherit;
|
|
74
74
|
border: 1px solid rgb(var(--ui-input-border-color) / var(--ui-input-border-opacity));
|
|
75
75
|
|
|
76
|
+
@nest :has(label)& {
|
|
77
|
+
padding-top: calc(var(--ui-input-py) * 1.75);
|
|
78
|
+
padding-bottom: calc(var(--ui-input-py) * 0.5);
|
|
79
|
+
}
|
|
80
|
+
|
|
76
81
|
&[disabled] {
|
|
77
82
|
cursor: default;
|
|
78
83
|
background-color: rgb(var(--color-background-100));
|
|
@@ -123,20 +128,13 @@
|
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
130
|
|
|
126
|
-
@nest
|
|
131
|
+
@nest :has(.icon-l)& {
|
|
127
132
|
padding-left: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
|
|
128
133
|
}
|
|
129
134
|
|
|
130
|
-
@nest
|
|
135
|
+
@nest :has(.icon-r)&, :--state-invalid& {
|
|
131
136
|
padding-right: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
|
|
132
137
|
}
|
|
133
|
-
|
|
134
|
-
@nest :not(:--state-placeholder)& {
|
|
135
|
-
&:is([placeholder], [data-placeholder]) {
|
|
136
|
-
padding-top: var(--ui-input-py);
|
|
137
|
-
padding-bottom: var(--ui-input-py);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
138
|
}
|
|
141
139
|
|
|
142
140
|
& > input {
|
|
@@ -203,7 +201,7 @@
|
|
|
203
201
|
}
|
|
204
202
|
|
|
205
203
|
@nest :not(:--state-active)& {
|
|
206
|
-
&:not([placeholder]
|
|
204
|
+
&:not([placeholder], :focus) {
|
|
207
205
|
font-size: 0;
|
|
208
206
|
}
|
|
209
207
|
}
|
|
@@ -221,7 +219,7 @@
|
|
|
221
219
|
min-height: var(--ui-input-height-textarea);
|
|
222
220
|
}
|
|
223
221
|
|
|
224
|
-
& > input,
|
|
222
|
+
& > :where(input, textarea) {
|
|
225
223
|
background-clip: padding-box;
|
|
226
224
|
cursor: text;
|
|
227
225
|
|
|
@@ -229,7 +227,7 @@
|
|
|
229
227
|
box-shadow: none;
|
|
230
228
|
}
|
|
231
229
|
|
|
232
|
-
@nest
|
|
230
|
+
@nest &:focus, :--state-active&, :has([placeholder] ~ label)& {
|
|
233
231
|
& ~ label {
|
|
234
232
|
transform: translateY(calc(var(--ui-input-size) / 1.4 * -1)) scale(0.8);
|
|
235
233
|
}
|
|
@@ -387,7 +385,7 @@
|
|
|
387
385
|
text-overflow: ellipsis;
|
|
388
386
|
overflow: hidden;
|
|
389
387
|
|
|
390
|
-
@media (--media-
|
|
388
|
+
@media (--media-touch) {
|
|
391
389
|
padding-top: 0.875rem;
|
|
392
390
|
padding-bottom: 0.875rem;
|
|
393
391
|
}
|
|
@@ -405,6 +403,55 @@
|
|
|
405
403
|
}
|
|
406
404
|
}
|
|
407
405
|
|
|
406
|
+
:is(.ui-input, .ui-select, .ui-input-group) {
|
|
407
|
+
--ui-input-validity-size: 0.875rem;
|
|
408
|
+
--ui-input-validity-offset: 0.375rem;
|
|
409
|
+
|
|
410
|
+
& em {
|
|
411
|
+
display: block;
|
|
412
|
+
font-size: var(--ui-input-validity-size);
|
|
413
|
+
color: rgb(var(--color-error));
|
|
414
|
+
font-style: normal;
|
|
415
|
+
margin-top: var(--ui-input-validity-offset);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.ui-input-group {
|
|
420
|
+
display: flex;
|
|
421
|
+
|
|
422
|
+
& .ui-btn {
|
|
423
|
+
height: auto;
|
|
424
|
+
|
|
425
|
+
& + .ui-input {
|
|
426
|
+
z-index: 1;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
& > * {
|
|
431
|
+
& + :is(.ui-input, .ui-select) {
|
|
432
|
+
margin-left: -1px;
|
|
433
|
+
|
|
434
|
+
& :is(input, select):not(:focus) {
|
|
435
|
+
border-left-color: transparent;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
&:not(:first-child) {
|
|
440
|
+
&, & :is(input, select) {
|
|
441
|
+
border-top-left-radius: 0;
|
|
442
|
+
border-bottom-left-radius: 0;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
&:not(:last-child) {
|
|
447
|
+
&, & :is(input, select) {
|
|
448
|
+
border-top-right-radius: 0;
|
|
449
|
+
border-bottom-right-radius: 0;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
408
455
|
.pcr-app {
|
|
409
456
|
border-radius: var(--radius);
|
|
410
457
|
overflow: hidden;
|
package/src/styles/Ui/Label.css
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
--ui-label-spacing: 0.05rem;
|
|
5
5
|
|
|
6
6
|
display: block;
|
|
7
|
-
font-size: var(--ui-
|
|
8
|
-
line-height: calc(var(--ui-
|
|
7
|
+
font-size: var(--ui-label-size);
|
|
8
|
+
line-height: calc(var(--ui-label-size-line) + var(--ui-label-size-line));
|
|
9
9
|
font-weight: var(--font-medium);
|
|
10
10
|
|
|
11
11
|
& ~ :is([class^="ui-"]:not(&), [class^="c-"]) {
|
package/src/styles/Ui/Link.css
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
.ui-link {
|
|
2
2
|
--ui-link-size: 0.875rem;
|
|
3
|
-
--ui-link-weight: var(--font-
|
|
3
|
+
--ui-link-weight: var(--font-normal);
|
|
4
4
|
--ui-link-hover-opacity: 0.8;
|
|
5
|
+
--ui-link-hover-color: rgb(var(--color-accent));
|
|
5
6
|
--ui-link-underline-opacity: 0.5;
|
|
6
7
|
|
|
7
8
|
display: inline-flex;
|
|
@@ -9,15 +10,21 @@
|
|
|
9
10
|
cursor: pointer;
|
|
10
11
|
font-size: var(--ui-link-size);
|
|
11
12
|
font-weight: var(--ui-link-weight);
|
|
12
|
-
transition: var(--transition-opacity);
|
|
13
|
+
transition: var(--transition-opacity), var(--transition-color);
|
|
13
14
|
position: relative;
|
|
14
15
|
white-space: nowrap;
|
|
16
|
+
line-height: 1.5;
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
&:--size-sm {
|
|
19
|
+
--ui-link-size: 0.75rem;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@nest &:focus-visible, .no-touch &:is([href], button):hover {
|
|
17
23
|
opacity: var(--ui-link-hover-opacity);
|
|
24
|
+
color: var(--ui-link-hover-color);
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
|
|
27
|
+
&[data-type~="underline"]::after {
|
|
21
28
|
content: "";
|
|
22
29
|
border-bottom: 1px solid currentColor;
|
|
23
30
|
opacity: 0;
|
|
@@ -26,7 +33,7 @@
|
|
|
26
33
|
transition: var(--transition-opacity), var(--transition-transform);
|
|
27
34
|
transform: translateY(-0.25rem);
|
|
28
35
|
|
|
29
|
-
@nest .no-touch :not([href^="tel:"], [href^="mailto:"]):hover& {
|
|
36
|
+
@nest .no-touch :not([href^="tel:"], [href^="mailto:"]):is(:hover, :focus-visible)& {
|
|
30
37
|
transform: none;
|
|
31
38
|
opacity: var(--ui-link-underline-opacity);
|
|
32
39
|
}
|
package/src/styles/Ui/Notice.css
CHANGED
package/src/styles/Ui/Select.css
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
.ui-select {
|
|
2
|
-
cursor: pointer;
|
|
3
|
-
user-select: none;
|
|
4
|
-
|
|
5
2
|
&:--state-active {
|
|
6
3
|
& label {
|
|
7
4
|
transform: translateY(calc(var(--ui-input-size) / 1.4 * -1)) scale(0.8);
|
|
@@ -35,9 +32,10 @@
|
|
|
35
32
|
position: relative;
|
|
36
33
|
z-index: 1;
|
|
37
34
|
text-overflow: ellipsis;
|
|
38
|
-
cursor: pointer;
|
|
39
35
|
-webkit-appearance: none;
|
|
40
36
|
-moz-appearance: none;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
user-select: none;
|
|
41
39
|
|
|
42
40
|
@nest [tabindex]& {
|
|
43
41
|
pointer-events: none;
|
|
@@ -131,7 +129,7 @@
|
|
|
131
129
|
font-size: var(--ui-input-size);
|
|
132
130
|
border-radius: var(--radius);
|
|
133
131
|
|
|
134
|
-
@nest .no-touch &:is(:hover, :focus) {
|
|
132
|
+
@nest .no-touch &:is(:hover, :focus-visible) {
|
|
135
133
|
background-color: rgb(var(--color-accent) / 0.1);
|
|
136
134
|
}
|
|
137
135
|
}
|
package/src/styles/Ui/Text.css
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
.ui-text {
|
|
2
|
-
--ui-text-size: 0.
|
|
2
|
+
--ui-text-size: 0.875rem;
|
|
3
|
+
--ui-text-size-line: 0.75rem;
|
|
3
4
|
--ui-text-weight: var(--font-normal);
|
|
4
5
|
--ui-text-weight-bold: var(--font-semibold);
|
|
5
6
|
|
|
6
7
|
font-weight: var(--ui-text-weight);
|
|
7
8
|
font-size: var(--ui-text-size);
|
|
8
|
-
line-height: calc(var(--ui-text-size) +
|
|
9
|
+
line-height: calc(var(--ui-text-size) + var(--ui-text-size-line));
|
|
10
|
+
|
|
11
|
+
&:--size-base {
|
|
12
|
+
--ui-text-size: 1rem;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&:--size-lg {
|
|
16
|
+
--ui-text-size: 1.125rem;
|
|
17
|
+
}
|
|
9
18
|
|
|
10
19
|
& a {
|
|
11
20
|
text-decoration: underline;
|
|
@@ -14,7 +23,7 @@
|
|
|
14
23
|
&:not([class*="text-"]) {
|
|
15
24
|
color: rgb(var(--color-accent));
|
|
16
25
|
|
|
17
|
-
@nest .no-touch &[href]:hover {
|
|
26
|
+
@nest .no-touch &[href]:is(:hover, :focus-visible) {
|
|
18
27
|
opacity: 0.8;
|
|
19
28
|
}
|
|
20
29
|
}
|
|
@@ -65,7 +74,7 @@
|
|
|
65
74
|
|
|
66
75
|
& p {
|
|
67
76
|
line-height: inherit;
|
|
68
|
-
margin: 0;
|
|
77
|
+
margin: 0 0 0.25rem;
|
|
69
78
|
|
|
70
79
|
&:empty {
|
|
71
80
|
line-height: 1rem;
|
package/src/styles/Ui/Title.css
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
.ui-title {
|
|
2
2
|
--ui-title-size: 0.875rem;
|
|
3
|
-
--ui-title-size-line: 0.
|
|
3
|
+
--ui-title-size-line: 0.25rem;
|
|
4
4
|
--ui-title-spacing: 0.05rem;
|
|
5
|
+
--ui-title-weight: var(--font-semibold);
|
|
5
6
|
|
|
6
7
|
display: block;
|
|
7
8
|
font-size: var(--ui-title-size);
|
|
8
9
|
line-height: calc(var(--ui-title-size) + var(--ui-title-size-line));
|
|
9
|
-
font-weight: var(--
|
|
10
|
+
font-weight: var(--ui-title-weight);
|
|
10
11
|
|
|
11
12
|
&[class*="uppercase"] {
|
|
12
13
|
letter-spacing: var(--ui-title-spacing);
|
package/src/styles/Utils/+.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
@import "default.css";
|
|
2
|
-
@import "icons.css";
|
|
3
|
-
@import "keyframes.css";
|
|
4
|
-
@import "normalize.css";
|
|
5
|
-
@import "print.css";
|
|
6
|
-
@import "tailwind/+.css";
|
|
7
|
-
@import "theme/+.css";
|
|
8
|
-
@import "vars.css";
|
|
9
|
-
@import "vendor.css";
|
|
1
|
+
@import "default.css";
|
|
2
|
+
@import "icons.css";
|
|
3
|
+
@import "keyframes.css";
|
|
4
|
+
@import "normalize.css";
|
|
5
|
+
@import "print.css";
|
|
6
|
+
@import "tailwind/+.css";
|
|
7
|
+
@import "theme/+.css";
|
|
8
|
+
@import "vars.css";
|
|
9
|
+
@import "vendor.css";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@import "base.css";
|
|
2
|
-
@import "gutters.css";
|
|
1
|
+
@import "base.css";
|
|
2
|
+
@import "gutters.css";
|
|
@@ -12,4 +12,29 @@
|
|
|
12
12
|
animation-duration: 0.5s;
|
|
13
13
|
animation-fill-mode: both;
|
|
14
14
|
}
|
|
15
|
+
|
|
16
|
+
.slider {
|
|
17
|
+
margin-left: calc(var(--container-padding-calc) * -1);
|
|
18
|
+
margin-right: calc(var(--container-padding-calc) * -1);
|
|
19
|
+
padding-left: var(--container-padding-calc);
|
|
20
|
+
scroll-padding-left: var(--container-padding-calc);
|
|
21
|
+
scroll-padding-right: var(--container-padding-calc);
|
|
22
|
+
overflow-x: auto;
|
|
23
|
+
overflow-y: hidden;
|
|
24
|
+
-webkit-overflow-scrolling: touch;
|
|
25
|
+
user-select: none;
|
|
26
|
+
scrollbar-width: none !important;
|
|
27
|
+
-ms-overflow-style: none;
|
|
28
|
+
display: flex;
|
|
29
|
+
|
|
30
|
+
& > * {
|
|
31
|
+
flex: 0 0 auto;
|
|
32
|
+
scroll-snap-align: start;
|
|
33
|
+
|
|
34
|
+
&:last-child {
|
|
35
|
+
box-sizing: content-box;
|
|
36
|
+
border-right: var(--container-padding-calc) solid transparent;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
15
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "main.css";
|
|
1
|
+
@import "main.css";
|
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
--color-instagram: 193, 53, 132;
|
|
8
8
|
--color-twitter: 29, 161, 242;
|
|
9
9
|
--color-facebook: 24, 119, 242;
|
|
10
|
+
--color-apple: 0 0 0;
|
|
10
11
|
--radius: 0.5rem;
|
|
11
12
|
--container-width: 75rem;
|
|
12
13
|
--container-width-sm: 50rem;
|
|
13
14
|
--container-padding: 5vw;
|
|
15
|
+
--container-padding-calc: max(calc(50vw - (var(--container-width) / 2) + var(--container-padding)), var(--container-padding));
|
|
14
16
|
--font-bold: 700;
|
|
15
17
|
--font-semibold: 600;
|
|
16
18
|
--font-medium: 500;
|
|
@@ -22,13 +24,32 @@
|
|
|
22
24
|
--z-30: 30;
|
|
23
25
|
--z-40: 40;
|
|
24
26
|
--z-50: 50;
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--
|
|
29
|
-
--
|
|
30
|
-
--
|
|
31
|
-
--
|
|
27
|
+
--rounded: 0.75rem;
|
|
28
|
+
--rounded-xs: 0.5rem;
|
|
29
|
+
--rounded-sm: 0.875rem;
|
|
30
|
+
--rounded-base: 1rem;
|
|
31
|
+
--rounded-md: 1.125rem;
|
|
32
|
+
--rounded-lg: 1.5rem;
|
|
33
|
+
--rounded-xl: 3rem;
|
|
34
|
+
--rounded-2xl: 6rem;
|
|
35
|
+
--rounded-3xl: 8rem;
|
|
36
|
+
--rounded-full: 9999px;
|
|
37
|
+
--spacing-xs: 0.5rem;
|
|
38
|
+
--spacing-sm: 0.875rem;
|
|
39
|
+
--spacing-base: 1rem;
|
|
40
|
+
--spacing-md: 1.125rem;
|
|
41
|
+
--spacing-lg: 1.5rem;
|
|
42
|
+
--spacing-xl: 3rem;
|
|
43
|
+
--spacing-2xl: 6rem;
|
|
44
|
+
--spacing-3xl: 8rem;
|
|
45
|
+
--spacing-section: 3rem;
|
|
46
|
+
--transition: 0.15s;
|
|
47
|
+
--transition-color: color var(--transition) ease;
|
|
48
|
+
--transition-background: background var(--transition) ease;
|
|
49
|
+
--transition-opacity: opacity var(--transition) ease;
|
|
50
|
+
--transition-transform: transform var(--transition) ease;
|
|
51
|
+
--transition-border: border-color var(--transition) ease;
|
|
52
|
+
--transition-shadow: box-shadow var(--transition) ease;
|
|
32
53
|
|
|
33
54
|
@media (--media-t) {
|
|
34
55
|
--container-padding: 3rem;
|
|
@@ -64,8 +85,11 @@
|
|
|
64
85
|
@custom-media --media-t (min-width: 48em);
|
|
65
86
|
@custom-media --media-d (min-width: 60em);
|
|
66
87
|
@custom-media --media-w (min-width: 76em);
|
|
67
|
-
@custom-media --media-hd (min-width:
|
|
88
|
+
@custom-media --media-hd (min-width: 85em);
|
|
89
|
+
@custom-media --media-mhd (min-width: 88em);
|
|
90
|
+
@custom-media --media-fhd (min-width: 100em);
|
|
68
91
|
@custom-media --media-touch (max-width: 59.9375em);
|
|
92
|
+
@custom-media --media-touch-only (max-width: 59.9375em) and (min-width: 47.9375em);
|
|
69
93
|
|
|
70
94
|
/* @custom-selector --theme */
|
|
71
95
|
@custom-selector :--theme-dark [data-theme~="dark"];
|
|
@@ -23,12 +23,6 @@
|
|
|
23
23
|
<link rel="stylesheet" href="{{ url|asset }}">
|
|
24
24
|
{% endfor %}
|
|
25
25
|
|
|
26
|
-
{% if config.serve.mode == 'dev' %}
|
|
27
|
-
<link rel="stylesheet" href="{{ attribute(assets.css, 'tailwind.src') }}">
|
|
28
|
-
{% endif %}
|
|
29
|
-
|
|
30
|
-
<script src="{{ assets.js.lazysizes }}" async></script>
|
|
31
|
-
|
|
32
26
|
<script>
|
|
33
27
|
(localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) && document.documentElement.classList.add('dark')
|
|
34
28
|
document.documentElement.className = document.documentElement.className.replace('no-js', 'js');matchMedia('(hover: hover) and (pointer: fine)').matches && document.documentElement.classList.add('no-touch');/Android|iPhone|iPad|iPod/i.test(navigator.userAgent) && document.documentElement.classList.add('mobile');(p => document.documentElement.classList.add(p.includes('macintel') && navigator.maxTouchPoints > 2 ? 'ipad' : p))(navigator.platform.toLowerCase().replace(/ .*/, ''));(u => document.documentElement.classList.add(u && u[0]))(navigator.userAgent.toLowerCase().match(/chrome|safari|firefox/i))
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<div class="row g-8 flex-wrap">
|
|
2
|
+
<div class="col-12" style="padding-top: 0">
|
|
3
|
+
<h1 class="ui-heading">Get started</h1>
|
|
4
|
+
<div class="ui-text">
|
|
5
|
+
<p>Minimal version <b>Node.js 14+</b> and <b>NPM 7+</b></p>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="col-12" id="installation">
|
|
9
|
+
<h1 class="ui-title uppercase text-primary mb-5">Instalation</h1>
|
|
10
|
+
<div class="ui-text">
|
|
11
|
+
<p>In existing project (with <b>Vituum and Newlogic Core</b>)</p>
|
|
12
|
+
</div>
|
|
13
|
+
<pre><code class="language-bash">
|
|
14
|
+
npm i
|
|
15
|
+
</code></pre>
|
|
16
|
+
<div class="ui-text">
|
|
17
|
+
<p>Creating a new project (with <b>Vituum and Newlogic Core</b>)</p>
|
|
18
|
+
</div>
|
|
19
|
+
<pre><code class="language-bash">
|
|
20
|
+
$ git clone --depth 1 https://github.com/newlogic-digital/ui.git . && rm -r .git
|
|
21
|
+
$ npm i
|
|
22
|
+
</code></pre>
|
|
23
|
+
<div class="ui-text">
|
|
24
|
+
<p>Use with in any other environment</p>
|
|
25
|
+
</div>
|
|
26
|
+
<pre><code class="language-bash">
|
|
27
|
+
$ npm i @newlogic-digital/ui
|
|
28
|
+
</code></pre>
|
|
29
|
+
<pre><code class="language-bash">
|
|
30
|
+
/* main.css or separate modules */
|
|
31
|
+
@import "node_modules/@newlogic-digital/ui/src/styles/main.css"
|
|
32
|
+
</code></pre>
|
|
33
|
+
<pre><code class="language-bash">
|
|
34
|
+
/* main.js or separate modules */
|
|
35
|
+
import "node_modules/@newlogic-digital/ui/src/scripts/main.js"
|
|
36
|
+
</code></pre>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="col-12" id="core">
|
|
39
|
+
<h1 class="ui-title uppercase text-primary mb-5">Core</h1>
|
|
40
|
+
<div class="ui-text">
|
|
41
|
+
<p><b>Vituum and Newlogic Core</b> is used as the main toolset, the complete documentation is at <a href="https://vituum.dev" target="_blank">vituum.dev</a>.</p>
|
|
42
|
+
<p>Newlogic Core is predefined config with plugins, filters etc. - <a href="https://vituum.dev" target="_blank">https://github.com/newlogic-digital/core</a></p>
|
|
43
|
+
<p>Framework can also be used with other tools, more information is in the section <a href="#build" title="">Build</a></p>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="col-12" id="theme">
|
|
47
|
+
<h1 class="ui-title uppercase text-primary mb-5">Theme</h1>
|
|
48
|
+
<div class="ui-text">
|
|
49
|
+
<p>Main CSS variables can be configured in <code>styles/Utils/theme/main.css</code> a <code>styles/Utils/vars.css</code>,
|
|
50
|
+
you can also create any number of color variations.
|
|
51
|
+
</p>
|
|
52
|
+
<p></p>
|
|
53
|
+
<p>Keyframes can be added in <code>styles/Utils/keyframes.css</code>, print styles in <code>styles/Utils/print.css</code>,
|
|
54
|
+
import of external css in <code>styles/Utils/vendor.css</code> and tailwind styles can be extended
|
|
55
|
+
in<code>styles/Utils/tailwind</code>
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="col-12" id="layout">
|
|
60
|
+
<h1 class="ui-title uppercase text-primary mb-5">Layout</h1>
|
|
61
|
+
<div class="ui-text">
|
|
62
|
+
<p>Global styles are located at <code>styles/Layout/Main.css</code>, others layout styles are for eg. <code>Header.css</code>,
|
|
63
|
+
<code>Footer.css</code> and naming should be done in following format <code>#l-header</code>, <code>#l-footer</code>
|
|
64
|
+
</p>
|
|
65
|
+
<p></p>
|
|
66
|
+
<p>Global scripts are located at <code>scripts/Layout/Main.js</code></p>
|
|
67
|
+
<p></p>
|
|
68
|
+
<p>Example of basic layout in HTML:</p>
|
|
69
|
+
</div>
|
|
70
|
+
<pre><code class="language-html">
|
|
71
|
+
<html class="no-js no-sw" lang="cs">
|
|
72
|
+
<head>
|
|
73
|
+
<title></title>
|
|
74
|
+
<link rel="stylesheet" href="/src/styles/main.css">
|
|
75
|
+
<script src="https://cdn.jsdelivr.net/npm/lazysizes@5.2.2/lazysizes.min.js"
|
|
76
|
+
async></script>
|
|
77
|
+
|
|
78
|
+
<script>'dark' !== localStorage.theme && ('theme' in localStorage || !window.matchMedia('(prefers-color-scheme: dark)').matches) || document.documentElement.classList.add('dark'), document.documentElement.className = document.documentElement.className.replace('no-js', 'js'), matchMedia('(hover: hover) and (pointer: fine)').matches && document.documentElement.classList.add('no-touch'), /Android|iPhone|iPad|iPod/i.test(navigator.userAgent) && document.documentElement.classList.add('mobile'), document.documentElement.classList.add(navigator.platform.toLowerCase().replace(/ .*/, '')), function (e) {
|
|
79
|
+
var t
|
|
80
|
+
e.match(/(msie|trident)/i) ? document.documentElement.classList.add('ie') : e.match(/edge/) ? document.documentElement.classList.add('edge') : (t = e.match(/(chrome|safari|firefox)/i)) && document.documentElement.classList.add(t[0])
|
|
81
|
+
}(navigator.userAgent.toLowerCase())</script>
|
|
82
|
+
|
|
83
|
+
<script src="/src/scripts/main.js" type="module"></script>
|
|
84
|
+
</head>
|
|
85
|
+
<body data-controller="lib lib-dialog lib-drawer">
|
|
86
|
+
<div class="l-default">
|
|
87
|
+
<header id="l-header" data-controller="l-header"></header>
|
|
88
|
+
<main id="l-main" class="transition-fade">
|
|
89
|
+
<!--PAGE CONTENT-->
|
|
90
|
+
</main>
|
|
91
|
+
<footer id="l-footer"></footer>
|
|
92
|
+
</div>
|
|
93
|
+
</body>
|
|
94
|
+
</html>
|
|
95
|
+
</code></pre>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|