@ui-doc/html-renderer 0.3.0 → 0.4.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 (93) hide show
  1. package/dist/HtmlCurlyBraceLexer.d.ts +4 -1
  2. package/dist/HtmlRenderer.d.ts +2 -2
  3. package/dist/InlineReader.d.ts +2 -1
  4. package/dist/{types/lexer.d.ts → Lexer.types.d.ts} +3 -1
  5. package/dist/NodeParser.d.ts +2 -1
  6. package/dist/{types/parser.d.ts → Parser.types.d.ts} +3 -3
  7. package/dist/{types/reader.d.ts → Reader.types.d.ts} +1 -1
  8. package/dist/{types/renderer.d.ts → Renderer.types.d.ts} +1 -1
  9. package/dist/TemplateLoader.d.ts +3 -2
  10. package/dist/{types/token.d.ts → Token.types.d.ts} +1 -1
  11. package/dist/assets/services/expand.d.ts +17 -0
  12. package/dist/assets/ui-doc.cjs +272 -9
  13. package/dist/assets/ui-doc.cjs.map +1 -1
  14. package/dist/assets/ui-doc.css +1169 -250
  15. package/dist/assets/ui-doc.css.map +1 -1
  16. package/dist/assets/ui-doc.min.css +9 -1
  17. package/dist/assets/ui-doc.min.js +1 -1
  18. package/dist/assets/ui-doc.mjs +272 -9
  19. package/dist/assets/ui-doc.mjs.map +1 -1
  20. package/dist/assets/{src/utils.d.ts → utils/delay.d.ts} +0 -1
  21. package/dist/assets/utils/dom.d.ts +28 -0
  22. package/dist/assets/utils/select.d.ts +12 -0
  23. package/dist/index.cjs +21 -18
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.ts +6 -1
  26. package/dist/index.mjs +21 -18
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/nodes/Node.d.ts +1 -1
  29. package/dist/nodes/tags/debug.d.ts +2 -1
  30. package/dist/nodes/tags/for.d.ts +2 -1
  31. package/dist/nodes/tags/if.d.ts +2 -1
  32. package/dist/nodes/tags/index.d.ts +1 -1
  33. package/dist/nodes/tags/page.d.ts +2 -1
  34. package/dist/nodes/tags/partial.d.ts +2 -1
  35. package/dist/nodes/tags/var.d.ts +2 -1
  36. package/package.json +3 -3
  37. package/scripts/app.ts +5 -3
  38. package/scripts/services/expand.ts +207 -0
  39. package/scripts/{src/utils.ts → utils/delay.ts} +0 -8
  40. package/scripts/utils/dom.ts +73 -0
  41. package/scripts/utils/select.ts +46 -0
  42. package/styles/01_resets/initial.css +8 -3
  43. package/styles/01_resets/root/color.css +19 -0
  44. package/styles/01_resets/root/font.css +28 -0
  45. package/styles/01_resets/root/space.css +30 -0
  46. package/styles/01_resets/root/witdh.css +12 -0
  47. package/styles/01_resets/root.css +61 -23
  48. package/styles/01_resets/typography.css +105 -8
  49. package/styles/02_utils/background.css +14 -0
  50. package/styles/02_utils/control.css +41 -0
  51. package/styles/02_utils/margin.css +150 -0
  52. package/styles/02_utils/padding.css +134 -0
  53. package/styles/02_utils/width.css +39 -0
  54. package/styles/03_components/button.css +42 -0
  55. package/styles/03_components/colors.css +7 -19
  56. package/styles/03_components/container.css +16 -0
  57. package/styles/03_components/example-markup.css +1 -6
  58. package/styles/03_components/grid-auto.css +49 -0
  59. package/styles/03_components/icons.css +7 -19
  60. package/styles/03_components/navigation/burger-control.css +75 -0
  61. package/styles/03_components/{nav → navigation}/list.css +9 -11
  62. package/styles/03_components/navigation/main.css +102 -0
  63. package/styles/03_components/spaces.css +8 -7
  64. package/styles/04_layout/body.css +22 -0
  65. package/styles/04_layout/inline-code.css +6 -0
  66. package/styles/04_layout/page.css +73 -0
  67. package/styles/index.css +58 -17
  68. package/templates/layouts/default.html +4 -6
  69. package/templates/layouts/example.html +1 -1
  70. package/templates/pages/default.html +13 -13
  71. package/templates/pages/index.html +9 -3
  72. package/templates/partials/code.html +1 -1
  73. package/templates/partials/colors.html +2 -2
  74. package/templates/partials/content.html +1 -1
  75. package/templates/partials/icons.html +3 -3
  76. package/templates/partials/nav-main.html +19 -8
  77. package/templates/partials/section.html +1 -1
  78. package/templates/partials/spaces.html +2 -2
  79. package/dist/types/index.d.ts +0 -6
  80. package/styles/02_objects/background.css +0 -7
  81. package/styles/02_objects/control.css +0 -25
  82. package/styles/02_objects/margin.css +0 -44
  83. package/styles/02_objects/padding.css +0 -44
  84. package/styles/02_objects/text.css +0 -3
  85. package/styles/02_objects/width.css +0 -16
  86. package/styles/03_components/nav/main.css +0 -39
  87. package/styles/03_components/text-flow.css +0 -5
  88. package/styles/04_layouts/page.css +0 -70
  89. /package/dist/{types/base.d.ts → Primitive.types.d.ts} +0 -0
  90. /package/dist/assets/{src → services}/example.d.ts +0 -0
  91. /package/dist/assets/{src → services}/sidebar.d.ts +0 -0
  92. /package/scripts/{src → services}/example.ts +0 -0
  93. /package/scripts/{src → services}/sidebar.ts +0 -0
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Use the auto grid class to define your custom grid layouts. Please note, all columns will have the same width.
3
+ * We are using css variables to define the grid:
4
+ * - `--grid-columns` (required): define how many columns your grid should have
5
+ * - `--grid-item-min-width` (required): define the min width of the containing items, when you use a count of 4 and a item
6
+ * width of 200px but there are only 650px availabe only three columns will be used. All items won't get smaller as
7
+ * this number.
8
+ *
9
+ * Modify the gap of your grid:
10
+ * - `--gap-x` (optional): column (x-axis) gap - space between items - eg. 3rem
11
+ * - `--gap-y` (optional): row (y-axis) gap - space between items - eg. 3rem
12
+ * - `--gap` (optional): Define column (x-axis) and row (y-axis) gap - eg. 3rem
13
+ * - `--gap-space-x` (optional): Define column (x-axis) gap - use existing space variables - eg. var(--space-xs)
14
+ * - `--gap-space-y` (optional): Define row (y-axis) gap - use existing space variables - eg. var(--space-xs)
15
+ * - `--gap-space` (optional): Define column (x-axis) and row (y-axis) gap - use existing space variables - eg. var(--space-xs)
16
+ *
17
+ * If you need to redefine the gap in a inner auto grid you can use `unset` or `inital` as vairable value inn the inner grid to fallback to default.
18
+ *
19
+ * @location components.grid-auto Auto Grid
20
+ * @example
21
+ * <div class="grid-auto" style="--grid-columns: 3; --grid-item-min-width: 300px;">
22
+ * <div class="bg bg-black pxy"></div>
23
+ * <div class="bg bg-black pxy"></div>
24
+ * <div class="bg bg-black pxy"></div>
25
+ * <div class="bg bg-black pxy"></div>
26
+ * <div class="bg bg-black pxy"></div>
27
+ * </div>
28
+ */
29
+ .grid-auto {
30
+ /* https://css-tricks.com/an-auto-filling-css-grid-with-max-columns/ */
31
+ --grid-gap-x: var(
32
+ --gap-x,
33
+ var(--gap, calc(var(--space-unit) * var(--gap-space-x, var(--gap-space, var(--space-normal)))))
34
+ );
35
+ --grid-gap-y: var(
36
+ --gap-y,
37
+ var(--gap, calc(var(--space-unit) * var(--gap-space-y, var(--gap-space, var(--space-normal)))))
38
+ );
39
+ --grid-gap-count: calc(var(--grid-columns) - 1);
40
+ --grid-total-gap-width: calc(var(--grid-gap-count) * var(--grid-gap-x));
41
+ --grid-item-max-width: calc((100% - var(--grid-total-gap-width)) / var(--grid-columns));
42
+
43
+ display: grid;
44
+ grid-gap: var(--grid-gap-y) var(--grid-gap-x);
45
+ grid-template-columns: repeat(
46
+ auto-fill,
47
+ minmax(max(var(--grid-item-min-width), var(--grid-item-max-width)), 1fr)
48
+ );
49
+ }
@@ -1,32 +1,20 @@
1
1
  .icons {
2
- display: grid;
3
- grid-template-columns: repeat(var(--icons-columns, 1), 1fr);
4
- gap: var(--icons-gap, var(--size-normal));
5
-
6
- @container content (width > 300px) {
7
- --icons-columns: 2;
8
- }
9
-
10
- @container content (width > 620px) {
11
- --icons-columns: 3;
12
- }
13
-
14
- @container content (width > 940px) {
15
- --icons-columns: 4;
16
- }
2
+ --grid-columns: 4;
3
+ --grid-item-min-width: 200px;
17
4
  }
18
5
 
19
6
  .icons > .item {
7
+ --space-px: var(--space-md);
8
+ --space-py: var(--space-xl);
9
+
20
10
  display: flex;
21
11
  flex-direction: column;
22
- gap: var(--size-xs);
12
+ gap: calc(var(--space-xs) * var(--space-unit));
23
13
  justify-content: center;
24
14
 
25
- padding: var(--size-xl) var(--size-md);
26
-
27
15
  text-align: center;
28
16
 
29
- border: 1px solid rgb(var(--border-color));
17
+ border: 1px solid rgb(var(--border-color, var(--font-color)));
30
18
 
31
19
  > .show,
32
20
  > .show::before,
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @location components.navigation.burger-control Navigation Burger Control
3
+ * @example
4
+ * <nav class="nav">
5
+ * <button class="control burger" aria-label="Toggle Navigation" aria-expanded="false" aria-controls="target" style="--nav-burger-control-size: 3em; --space-px: .4; --space-py: .6">
6
+ * <span class="line"></span>
7
+ * <span class="line"></span>
8
+ * <span class="line"></span>
9
+ * </button>
10
+ * <div id="target" hidden>Controlled Area</div>
11
+ * </nav>
12
+ */
13
+
14
+ .nav-main .burger.control {
15
+ /* prettier-ignore */
16
+ --nav-burger-control-line-height-calc: var(--nav-burger-control-line-height, calc(
17
+ (
18
+ var(--nav-burger-control-size) -
19
+ (var(--py, calc(var(--space-unit) * var(--space-py))) * 2) -
20
+ (var(--nav-burger-control-line-space, var(--space-unit) / 2) * 2)
21
+ ) / 3
22
+ ));
23
+
24
+ position: relative;
25
+ width: calc(var(--nav-burger-control-size) * var(--nav-burger-control-width-multiplier, 1.4));
26
+ height: var(--nav-burger-control-size);
27
+ }
28
+
29
+ .nav-main .burger.control > .line {
30
+ position: absolute;
31
+ top: 50%;
32
+ left: 50%;
33
+ transform: translate(-50%, -50%);
34
+
35
+ display: block;
36
+
37
+ width: calc(100% - var(--px, calc(var(--space-unit) * var(--space-px))) * 2);
38
+ height: var(--nav-burger-control-line-height-calc);
39
+
40
+ background: rgb(var(--font-color));
41
+
42
+ transition: all var(--nav-burger-animation-time, 0.3s) ease;
43
+
44
+ &:first-child {
45
+ transform: translate(
46
+ -50%,
47
+ calc(
48
+ -50% - var(--nav-burger-control-line-space, var(--space-unit) / 2) - var(--nav-burger-control-line-height-calc)
49
+ )
50
+ );
51
+ }
52
+
53
+ &:last-child {
54
+ transform: translate(
55
+ -50%,
56
+ calc(
57
+ -50% + var(--nav-burger-control-line-space, var(--space-unit) / 2) + var(--nav-burger-control-line-height-calc)
58
+ )
59
+ );
60
+ }
61
+ }
62
+
63
+ .nav-main .burger.control[aria-expanded="true"] > .line {
64
+ &:first-child {
65
+ transform: translate(-50%, -50%) rotate(45deg);
66
+ }
67
+
68
+ &:nth-child(2) {
69
+ display: none;
70
+ }
71
+
72
+ &:last-child {
73
+ transform: translate(-50%, -50%) rotate(-45deg);
74
+ }
75
+ }
@@ -1,7 +1,7 @@
1
1
  .nav-list {
2
- --nav-list-item-px: var(--size-sm);
3
- --nav-list-item-py: var(--size-xs);
4
- --nav-list-item-border-color: var(--border-color);
2
+ --nav-list-item-space-px: var(--space-sm);
3
+ --nav-list-item-space-py: var(--space-xs);
4
+ --nav-list-item-border-color: var(--border-color, var(--font-color));
5
5
 
6
6
  text-align: left;
7
7
 
@@ -15,23 +15,21 @@
15
15
  margin-top: var(--nav-list-root-item-space, var(--size-sm));
16
16
  }
17
17
 
18
- .control {
19
- &.active {
20
- --font-color: var(--accent-color);
21
- }
18
+ .control.active {
19
+ --font-color: var(--accent-color);
22
20
  }
23
21
  }
24
22
 
25
23
  .nav-list > ul > li > .control {
26
- --py: var(--nav-list-item-py);
27
- --pr: var(--nav-list-item-px);
24
+ --space-py: var(--nav-list-item-space-py);
25
+ --space-pr: var(--nav-list-item-space-px);
28
26
  --font-weight: var(--font-weight-bold);
29
27
  --font-size: var(--font-size-md);
30
28
  }
31
29
 
32
30
  .nav-list > ul > li > ul > li > .control {
33
- --py: var(--nav-list-item-py);
34
- --px: var(--nav-list-item-px);
31
+ --space-py: var(--nav-list-item-space-py);
32
+ --space-px: var(--nav-list-item-space-px);
35
33
 
36
34
  text-align: left;
37
35
  border-left: 1px solid rgba(var(--nav-list-item-border-color) / var(--border-opacity, 0.1));
@@ -0,0 +1,102 @@
1
+ .nav-main {
2
+ --bg-color: var(--na-main-bg-color, var(--color-blue));
3
+ --font-color: var(--nav-main-bg-color, var(--color-white));
4
+ --accent-color: var(--nav-main-accent-color, var(--color-yellow));
5
+
6
+ position: sticky;
7
+ z-index: 100;
8
+ top: 0;
9
+ }
10
+
11
+ .nav-main > .bar,
12
+ .nav-main > .bar > .menu {
13
+ display: flex;
14
+ gap: var(--nav-main-item-gap, calc(var(--space-unit) * var(--nav-main-item-gap-space, 0)));
15
+ }
16
+
17
+ .nav-main > .bar {
18
+ --width-content-offset: var(--nav-main-bar-item-space-x) * var(--space-unit);
19
+
20
+ container-name: nav-bar;
21
+ container-type: inline-size;
22
+ justify-content: center;
23
+ background: rgb(var(--bg-color));
24
+
25
+ > .logo,
26
+ > .burger.control,
27
+ > .menu > .control {
28
+ --space-px: var(--nav-main-bar-item-space-x);
29
+ --space-py: var(--nav-main-bar-item-space-y);
30
+ }
31
+
32
+ > .logo {
33
+ height: var(--nav-main-bar-item-height);
34
+
35
+ > svg {
36
+ width: auto;
37
+ height: 100%;
38
+ }
39
+ }
40
+
41
+ > .menu > .control {
42
+ --font-weight: var(--font-weight-bold);
43
+
44
+ display: block;
45
+
46
+ &[aria-current="page"] {
47
+ --font-color: var(--accent-color);
48
+ }
49
+ }
50
+
51
+ @container nav-bar (width > 1000px) {
52
+ > .burger.control {
53
+ display: none;
54
+ }
55
+
56
+ > .menu {
57
+ margin-left: auto;
58
+ }
59
+ }
60
+
61
+ @container nav-bar (width <= 1000px) {
62
+ position: relative;
63
+
64
+ > .burger.control {
65
+ --nav-burger-control-size: var(--nav-main-bar-item-height);
66
+
67
+ margin-left: auto;
68
+ }
69
+
70
+ > .menu {
71
+ position: absolute;
72
+ top: calc(var(--nav-main-bar-item-height));
73
+ left: 0;
74
+
75
+ overflow-y: auto;
76
+ flex-direction: column;
77
+
78
+ width: 100%;
79
+ max-height: calc(100vh - var(--nav-main-height));
80
+ padding: calc(var(--space-unit) * var(--nav-main-menu-space-t)) var(--width-calc)
81
+ calc(var(--space-unit) * var(--nav-main-menu-space-b));
82
+
83
+ opacity: 1;
84
+ background: rgb(var(--bg-color));
85
+ }
86
+
87
+ > .menu.menu-show-enter-active,
88
+ > .menu.menu-show-leave-active {
89
+ transition: opacity 0.3s ease-in-out;
90
+ }
91
+
92
+ > .menu.menu-show-enter-from,
93
+ > .menu.menu-show-leave-to {
94
+ opacity: 0;
95
+ }
96
+
97
+ > .menu[hidden],
98
+ > .burger.control[aria-expanded="false"] ~ .menu {
99
+ display: none;
100
+ }
101
+ }
102
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  display: flex;
6
6
  flex-direction: column;
7
- gap: var(--spaces-gap, var(--size-xs));
7
+ gap: var(--spaces-gap, calc(var(--spaces-gap-space, var(--space-xs)) * var(--space-unit)));
8
8
  }
9
9
 
10
10
  .spaces > .item {
@@ -15,20 +15,21 @@
15
15
  --font-color: var(--spaces-font-color);
16
16
  }
17
17
 
18
- > div {
19
- padding: var(--size-sm) var(--size-normal);
18
+ > .pxy {
19
+ --space-px: var(--space-normal);
20
+ --space-py: var(--space-xs);
20
21
  }
21
22
 
22
23
  > div:first-child {
23
- margin-right: var(--space-value);
24
+ margin-right: calc(var(--space-value) * var(--space-unit));
24
25
  }
25
26
 
26
- > div:last-child {
27
+ > .info {
27
28
  display: flex;
28
29
 
29
30
  > *:not(:last-child) {
30
- margin-right: var(--size-xs);
31
- padding-right: var(--size-xs);
31
+ margin-right: calc(var(--space-xs) * var(--space-unit));
32
+ padding-right: calc(var(--space-xs) * var(--space-unit));
32
33
  border-right: 1px solid currentcolor;
33
34
  }
34
35
 
@@ -0,0 +1,22 @@
1
+ html {
2
+ height: 100%;
3
+ }
4
+
5
+ html > body:has(.expand-full-height) {
6
+ display: flex;
7
+ flex-direction: column;
8
+ min-height: 100%;
9
+
10
+ > .expand-full-height {
11
+ flex: 1 1;
12
+ }
13
+ }
14
+
15
+ html > body > footer {
16
+ --bg-color: var(--footer-bg-color, var(--color-blue));
17
+ --font-color: var(--footer-font-color, var(--color-white));
18
+
19
+ > .text {
20
+ text-align: right;
21
+ }
22
+ }
@@ -0,0 +1,6 @@
1
+ p > code {
2
+ display: inline-block;
3
+ padding: 0.1em 0.2em;
4
+ color: rgb(var(--inline-code-font-color, var(--font-color)));
5
+ background: rgb(var(--inline-code-bg-color, var(--color-gray)));
6
+ }
@@ -0,0 +1,73 @@
1
+ body.page {
2
+ --main-sidebar-width: 25ch;
3
+ --main-content-sidebar-space: var(--space-xl);
4
+ }
5
+
6
+ body.page > .content {
7
+ --space-py: var(--space-xl);
8
+
9
+ .headline + .description {
10
+ margin-top: calc(var(--page-headline-description-space, var(--space-md)) * var(--space-unit));
11
+ }
12
+
13
+ > main > section + section {
14
+ margin-top: calc(var(--page-content-section-space, var(--space-xl)) * var(--space-unit));
15
+ }
16
+
17
+ > main * + .example,
18
+ > main *:not(.example) + .markup {
19
+ margin-top: 1em;
20
+ }
21
+ }
22
+
23
+ body.page > .content > main {
24
+ container-name: content;
25
+ container-type: inline-size;
26
+ }
27
+
28
+ @media screen and (width >= 1000px) {
29
+ body.page > .content:has(> .sidebar) {
30
+ display: grid;
31
+ grid-template-columns: var(--main-sidebar-width) 1fr;
32
+ grid-template-rows: auto 1fr;
33
+ gap: var(
34
+ --page-header-main-garp,
35
+ calc(var(--page-header-main-space, var(--space-lg)) * var(--space-unit))
36
+ )
37
+ var(
38
+ --page-content-sidebar-garp,
39
+ calc(var(--page-content-sidebar-space, var(--space-xl)) * var(--space-unit))
40
+ );
41
+
42
+ > .sidebar {
43
+ grid-column: 1 / span 1;
44
+ grid-row: 1 / span 2;
45
+ }
46
+
47
+ > header {
48
+ grid-column: 2 / span 1;
49
+ grid-row: 1 / span 1;
50
+ }
51
+
52
+ > main {
53
+ grid-column: 2 / span 1;
54
+ grid-row: 2 / span 1;
55
+ }
56
+
57
+ > .sidebar > .scrollbar {
58
+ position: sticky;
59
+ top: var(--nav-main-height);
60
+
61
+ overflow-y: auto;
62
+
63
+ height: 100%;
64
+ max-height: calc(100vh - var(--nav-main-height));
65
+ }
66
+ }
67
+ }
68
+
69
+ @media screen and (width < 1000px) {
70
+ body.page > .content > .sidebar {
71
+ display: none;
72
+ }
73
+ }
package/styles/index.css CHANGED
@@ -1,20 +1,61 @@
1
- @import url("./01_resets/root.css");
2
- @import url("./01_resets/initial.css");
3
- @import url("./01_resets/typography.css");
1
+ /**
2
+ * Text for the index page
3
+ *
4
+ * @page index UI-Doc
5
+ */
4
6
 
5
- @import url("./02_objects/background.css");
6
- @import url("./02_objects/text.css");
7
- @import url("./02_objects/padding.css");
8
- @import url("./02_objects/margin.css");
9
- @import url("./02_objects/width.css");
10
- @import url("./02_objects/control.css");
7
+ /**
8
+ * Variables used in the project.
9
+ *
10
+ * @page variables Variables
11
+ * @order 10
12
+ */
11
13
 
12
- @import url("./03_components/example-markup.css");
13
- @import url("./03_components/text-flow.css");
14
- @import url("./03_components/nav/main.css");
15
- @import url("./03_components/nav/list.css");
16
- @import url("./03_components/colors.css");
17
- @import url("./03_components/spaces.css");
18
- @import url("./03_components/icons.css");
14
+ /**
15
+ * Resets used to normalize the browser styles.
16
+ *
17
+ * @page resets Resets
18
+ * @order 20
19
+ */
20
+ @import url("01_resets/root.css");
21
+ @import url("01_resets/initial.css");
22
+ @import url("01_resets/typography.css");
19
23
 
20
- @import url("./04_layouts/page.css");
24
+ /**
25
+ * Utility classes are building the base of all styles. They can be applyed everywhere to modify/control one specific thing.
26
+ *
27
+ * @page utils Utilities
28
+ * @order 30
29
+ */
30
+ @import url("02_utils/background.css");
31
+ @import url("02_utils/padding.css");
32
+ @import url("02_utils/margin.css");
33
+ @import url("02_utils/control.css");
34
+ @import url("02_utils/width.css");
35
+
36
+ /**
37
+ * Objects are build out of objects and define style for it's inner children.
38
+ *
39
+ * @page components Components
40
+ * @order 40
41
+ */
42
+ @import url("03_components/button.css");
43
+ @import url("03_components/container.css");
44
+ @import url("03_components/grid-auto.css");
45
+ @import url("03_components/navigation/burger-control.css");
46
+ @import url("03_components/navigation/main.css");
47
+ @import url("03_components/navigation/list.css");
48
+ @import url("03_components/example-markup.css");
49
+ @import url("03_components/colors.css");
50
+ @import url("03_components/icons.css");
51
+ @import url("03_components/spaces.css");
52
+
53
+ /**
54
+ * Layouts are the outermost layer of the design. They define the structure of the page.
55
+ *
56
+ * @page layout Layout
57
+ * @order 50
58
+ */
59
+ @import url("04_layout/body.css");
60
+ @import url("04_layout/inline-code.css");
61
+ @import url("04_layout/page.css");
@@ -7,12 +7,10 @@
7
7
 
8
8
  {{var:styles}}
9
9
  </head>
10
- <body class="{{var:page.id}}">
11
- <header>{{partial:nav-main}}</header>
12
- <main class="width-content">
13
- {{page:page.id page}}
14
- </main>
15
- <footer class="width-content py mt">
10
+ <body class="page {{var:page.id}}">
11
+ {{partial:nav-main}}
12
+ {{page:page.id page}}
13
+ <footer class="width-content py bg">
16
14
  <div class="text">{{var:footerText}}</div>
17
15
  </footer>
18
16
 
@@ -9,7 +9,7 @@
9
9
  <style>
10
10
  body {
11
11
  margin: 0 !important;
12
- padding: 0 !important;
12
+ padding: 1em !important;
13
13
  overflow: hidden !important;
14
14
  }
15
15
  body > *:last-child {
@@ -1,14 +1,14 @@
1
- <div class="content">
2
- <h1 class="headline">{{var:title}}</h1>
3
-
4
- {{if:description}}<div class="description">{{var:description}}</div>{{/if}}
5
-
6
- {{for:sections}}
7
- {{partial:section}}
8
- {{/for}}
1
+ <div class="content width-content expand-full-height py">
2
+ <header class="container">
3
+ <h1 class="headline">{{var:title}}</h1>
4
+ {{if:description}}<div class="container description">{{var:description}}</div>{{/if}}
5
+ </header>
6
+ <main class="container">
7
+ {{for:sections}}
8
+ {{partial:section}}
9
+ {{/for}}
10
+ </main>
11
+ <aside class="sidebar">
12
+ <div class="scrollbar">{{partial:nav-sidebar}}</div>
13
+ </aside>
9
14
  </div>
10
- <aside class="sidebar">
11
- <div class="scroll">{{partial:nav-sidebar}}</div>
12
- </aside>
13
-
14
-
@@ -1,3 +1,9 @@
1
- <h1 class="headline">{{var:title}}</h1>
2
-
3
- {{if:description}}<div class="description">{{var:description}}</div>{{/if}}
1
+ <header class="width-content">
2
+ <h1 class="headline">{{var:title}}</h1>
3
+ {{if:description}}<div class="container description">{{var:description}}</div>{{/if}}
4
+ </header>
5
+ <main class="width-content expand-full-height">
6
+ {{for:sections}}
7
+ {{partial:section}}
8
+ {{/for}}
9
+ </main>
@@ -1,5 +1,5 @@
1
1
  {{if:type}}
2
2
  <div class="markup">
3
- <pre class="code"><code class="language-{{var:type}}">{{var:content escape}}</code></pre>
3
+ <pre class="code"><code class="pxy language-{{var:type}}">{{var:content escape}}</code></pre>
4
4
  </div>
5
5
  {{/if}}
@@ -1,7 +1,7 @@
1
- <div class="colors">
1
+ <div class="colors grid-auto">
2
2
  {{for:this}}
3
3
  <div
4
- class="item bg"
4
+ class="item bg pxy"
5
5
  style="--bg-color: {{var:value.output}};{{if:font}} --font-color: {{var:font.output}};{{/if}}"
6
6
  >
7
7
  {{if:value.hex}}<span class="value">{{var:value.hex}}</span>{{/if}}
@@ -1,4 +1,4 @@
1
- <h{{var:titleLevel}} id="{{var:id}}">{{var:title}}</h{{var:titleLevel}}>
1
+ <h{{var:titleLevel}} class="headline" id="{{var:id}}">{{var:title}}</h{{var:titleLevel}}>
2
2
 
3
3
  {{if:description}}{{var:description}}{{/if}}
4
4
 
@@ -1,14 +1,14 @@
1
- <div class="icons">
1
+ <div class="icons grid-auto">
2
2
  {{for:this}}
3
3
  {{if:value.name}}
4
- <div class="item from-var" style="--icon: {{var:value.output}}">
4
+ <div class="item pxy from-var" style="--icon: {{var:value.output}}">
5
5
  <span class="show"></span>
6
6
  <span class="text">{{var:text}}</span>
7
7
  <span class="name">{{var:name}}</span>
8
8
  </div>
9
9
  {{/if}}
10
10
  {{if:value.value}}
11
- <div class="item from-data">
11
+ <div class="item pxy from-data">
12
12
  <span class="show">{{var:value.output}}</span>
13
13
  <span class="text" data-icon="{{var:value.output}}">{{var:text}}</span>
14
14
  <span class="name">{{var:name}}</span>
@@ -1,9 +1,20 @@
1
- <nav class="nav-main width-content" aria-label="Main navigation" role="menu">
2
- <div class="bar">
3
- <a href="{{var:homeLink}}" class="control logo">{{var:logo}}</a>
4
- <a href="{{var:homeLink}}" class="control title">{{var:name}}</a>
1
+ <div class="nav-main" aria-label="Main navigation" role="menu">
2
+ <div class="bar width-content">
3
+ <a class="control logo" role="menuitem" href="{{var:homeLink}}" aria-label="To homepage">{{var:logo}}</a>
4
+
5
+ <button
6
+ class="control burger"
7
+ aria-label="Toggle menu"
8
+ aria-haspopup="true"
9
+ aria-expanded="false"
10
+ aria-controls="nav-main-menu"
11
+ >
12
+ <span class="line"></span>
13
+ <span class="line"></span>
14
+ <span class="line"></span>
15
+ </button>
16
+ <nav class="menu" role="menubar" id="nav-main-menu" data-animate="menu-show" data-inert="body > .content, body > footer">
17
+ {{for:menu}}<a class="control" role="menuitem" tabindex="0" href="{{var:href}}"{{if:active}} aria-current="page"{{/if}}>{{var:text}}</a>{{/for}}
18
+ </nav>
5
19
  </div>
6
- <div class="menu" role="menubar" id="nav-main-menu">
7
- {{for:menu}}<a href="{{var:href}}" class="control" role="menuitem" tabindex="0"{{if:active}} aria-current="page"{{/if}}>{{var:text}}</a>{{/for}}
8
- </div>
9
- </nav>
20
+ </div>