lism-css 0.0.1 → 0.0.3
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/README.md +52 -0
- package/dist/_virtual/jsx-runtime.js +5 -0
- package/dist/_virtual/jsx-runtime2.js +4 -0
- package/dist/_virtual/react-jsx-runtime.development.js +4 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js +4 -0
- package/dist/components/Accordion/AccIcon.js +10 -0
- package/dist/components/Accordion/getProps.js +29 -0
- package/dist/components/Accordion/index.js +6 -0
- package/dist/components/Accordion/index2.js +32 -0
- package/dist/components/Accordion/setAccordion.js +37 -0
- package/dist/components/Accordion/style.css +1 -0
- package/dist/components/Box/getProps.js +7 -0
- package/dist/components/Box/index.js +9 -0
- package/dist/components/Center/index.js +8 -0
- package/dist/components/Columns/getProps.js +6 -0
- package/dist/components/Columns/index.js +9 -0
- package/dist/components/Container/index.js +9 -0
- package/dist/components/Decorator/getProps.js +15 -0
- package/dist/components/Decorator/index.js +9 -0
- package/dist/components/Divider/getProps.js +11 -0
- package/dist/components/Divider/index.js +9 -0
- package/dist/components/Dummy/getContent.js +9 -0
- package/dist/components/Dummy/index.js +17 -0
- package/dist/components/Dummy/texts.js +24 -0
- package/dist/components/Flex/Cluster.js +8 -0
- package/dist/components/Flex/FlexItem.js +9 -0
- package/dist/components/Flex/getProps.js +13 -0
- package/dist/components/Flex/index.js +9 -0
- package/dist/components/Frame/getProps.js +7 -0
- package/dist/components/Frame/index.js +9 -0
- package/dist/components/Grid/GridItem.js +10 -0
- package/dist/components/Grid/getProps.js +28 -0
- package/dist/components/Grid/index.js +9 -0
- package/dist/components/Icon/SVG.js +29 -0
- package/dist/components/Icon/getProps.js +34 -0
- package/dist/components/Icon/index.js +11 -0
- package/dist/components/Icon/presets.js +193 -0
- package/dist/components/Layer/getProps.js +9 -0
- package/dist/components/Layer/index.js +10 -0
- package/dist/components/LinkBox/index.js +9 -0
- package/dist/components/Lism/Link.js +8 -0
- package/dist/components/Lism/Media.js +10 -0
- package/dist/components/Lism/Text.js +8 -0
- package/dist/components/Lism/index.js +9 -0
- package/dist/components/Modal/Body.js +10 -0
- package/dist/components/Modal/CloseIconBtn.js +19 -0
- package/dist/components/Modal/Footer.js +10 -0
- package/dist/components/Modal/Header.js +10 -0
- package/dist/components/Modal/Inner.js +9 -0
- package/dist/components/Modal/getProps.js +19 -0
- package/dist/components/Modal/index.js +10 -0
- package/dist/components/Modal/index2.js +17 -0
- package/dist/components/Modal/setModal.js +37 -0
- package/dist/components/Modal/style.css +1 -0
- package/dist/components/Spacer/getProps.js +21 -0
- package/dist/components/Spacer/index.js +9 -0
- package/dist/components/Stack/index.js +8 -0
- package/dist/components/Tabs/Tab.js +22 -0
- package/dist/components/Tabs/TabItem.js +7 -0
- package/dist/components/Tabs/TabList.js +8 -0
- package/dist/components/Tabs/TabPanel.js +19 -0
- package/dist/components/Tabs/getProps.js +17 -0
- package/dist/components/Tabs/index.js +9 -0
- package/dist/components/Tabs/index2.js +55 -0
- package/dist/components/Tabs/setEvent.js +29 -0
- package/dist/components/Tabs/style.css +1 -0
- package/dist/components/WithSide/getProps.js +14 -0
- package/dist/components/WithSide/index.js +9 -0
- package/dist/components/getFilterProps.js +23 -0
- package/dist/components/getInsetProps.js +8 -0
- package/dist/components/getMediaProps.js +14 -0
- package/dist/components/getTransformProps.js +8 -0
- package/dist/config/prop_list.js +395 -0
- package/dist/config/tokens.js +67 -0
- package/dist/config.js +9 -0
- package/dist/css/all.css +1 -0
- package/dist/css/all_no_layer.css +1 -0
- package/dist/css/base.css +1 -0
- package/dist/css/dynamic.css +1 -0
- package/dist/css/layout.css +1 -0
- package/dist/css/props.css +1 -0
- package/dist/css/reset.css +1 -0
- package/dist/css/state.css +1 -0
- package/dist/css/utility.css +1 -0
- package/dist/css/with_layer.css +1 -0
- package/dist/index.js +54 -0
- package/dist/lib/getBpData.js +13 -0
- package/dist/lib/getLismProps.js +239 -0
- package/dist/lib/getMaybeCssVar.js +61 -0
- package/dist/lib/getMaybeUtilValue.js +6 -0
- package/dist/lib/helper/atts.js +11 -0
- package/dist/lib/helper/filterEmptyObj.js +9 -0
- package/dist/lib/helper/hasKeys.js +6 -0
- package/dist/lib/helper/isEmptyObj.js +6 -0
- package/dist/lib/helper/isNumStr.js +6 -0
- package/dist/lib/helper/splitWithComma.js +6 -0
- package/dist/lib/isPresetValue.js +6 -0
- package/dist/lib/isTokenValue.js +9 -0
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js +604 -0
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js +28 -0
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js +10 -0
- package/dist/scripts/accordion.js +4 -0
- package/dist/scripts/modal.js +4 -0
- package/dist/scripts/tabs.js +6 -0
- package/package.json +22 -22
- package/packages/astro/Accordion/AccBody.astro +15 -0
- package/packages/astro/Accordion/AccHeader.astro +13 -0
- package/packages/astro/Accordion/AccIcon.astro +19 -0
- package/packages/astro/Accordion/AccLabel.astro +12 -0
- package/packages/astro/Accordion/Accordion.astro +21 -0
- package/packages/astro/Accordion/__setEvent.js +2 -0
- package/packages/astro/Accordion/index.js +7 -0
- package/packages/astro/Box/Box.astro +11 -0
- package/packages/astro/Box/index.js +1 -0
- package/packages/astro/Center/Center.astro +11 -0
- package/packages/astro/Center/index.js +1 -0
- package/packages/astro/Columns/Columns.astro +11 -0
- package/packages/astro/Columns/index.js +1 -0
- package/packages/astro/Container/Container.astro +11 -0
- package/packages/astro/Container/index.js +1 -0
- package/packages/astro/Decorator/Decorator.astro +13 -0
- package/packages/astro/Decorator/index.js +1 -0
- package/packages/astro/Divider/Divider.astro +12 -0
- package/packages/astro/Divider/index.js +1 -0
- package/packages/astro/Dummy/Dummy.astro +12 -0
- package/packages/astro/Dummy/index.js +1 -0
- package/packages/astro/Flex/Cluster.astro +11 -0
- package/packages/astro/Flex/Flex.astro +14 -0
- package/packages/astro/Flex/index.js +2 -0
- package/packages/astro/Frame/Frame.astro +12 -0
- package/packages/astro/Frame/index.js +1 -0
- package/packages/astro/Grid/Grid.astro +13 -0
- package/packages/astro/Grid/GridItem.astro +15 -0
- package/packages/astro/Grid/index.js +2 -0
- package/packages/astro/Icon/Icon.astro +25 -0
- package/packages/astro/Icon/SVG.astro +30 -0
- package/packages/astro/Icon/index.js +2 -0
- package/packages/astro/Layer/Layer.astro +15 -0
- package/packages/astro/Layer/index.js +1 -0
- package/packages/astro/LinkBox/LinkBox.astro +16 -0
- package/packages/astro/LinkBox/index.js +1 -0
- package/packages/astro/Lism/Link.astro +10 -0
- package/packages/astro/Lism/Lism.astro +14 -0
- package/packages/astro/Lism/Media.astro +24 -0
- package/packages/astro/Lism/Text.astro +10 -0
- package/packages/astro/Lism/index.js +4 -0
- package/packages/astro/Modal/Body.astro +14 -0
- package/packages/astro/Modal/CloseIconBtn.astro +24 -0
- package/packages/astro/Modal/Footer.astro +14 -0
- package/packages/astro/Modal/Header.astro +14 -0
- package/packages/astro/Modal/Inner.astro +13 -0
- package/packages/astro/Modal/Modal.astro +20 -0
- package/packages/astro/Modal/index.js +8 -0
- package/packages/astro/OverlayLink/OverlayLink.astro +10 -0
- package/packages/astro/OverlayLink/index.js +1 -0
- package/packages/astro/Spacer/Spacer.astro +11 -0
- package/packages/astro/Spacer/index.js +1 -0
- package/packages/astro/Stack/Stack.astro +7 -0
- package/packages/astro/Stack/index.js +1 -0
- package/packages/astro/Tabs/Tab.astro +26 -0
- package/packages/astro/Tabs/TabItem.astro +8 -0
- package/packages/astro/Tabs/TabList.astro +8 -0
- package/packages/astro/Tabs/TabPanel.astro +22 -0
- package/packages/astro/Tabs/Tabs.astro +60 -0
- package/packages/astro/Tabs/index.js +7 -0
- package/packages/astro/Tabs/transformTabitems.js +40 -0
- package/packages/astro/Test/Test.astro +14 -0
- package/packages/astro/Test/TestItem.astro +14 -0
- package/packages/astro/Test/index.js +4 -0
- package/packages/astro/WithSide/WithSide.astro +12 -0
- package/packages/astro/WithSide/index.js +1 -0
- package/packages/astro/helper/index.js +6 -0
- package/packages/astro/index.js +29 -0
- package/packages/astro/types.ts +28 -0
- package/packages/next-js/Accordion/Accordion.jsx +19 -0
- package/packages/next-js/Accordion/index.js +2 -0
- package/src/scss/__memo/_lh-auto-all.scss +46 -0
- package/src/scss/__memo/_lh-auto-h.scss +50 -0
- package/src/scss/__memo/_lh-manual.scss +58 -0
- package/src/scss/_auto_output.scss +194 -0
- package/src/scss/_mixin.scss +38 -0
- package/src/scss/_props.scss +771 -0
- package/src/scss/_query.scss +40 -0
- package/src/scss/_setting.scss +22 -0
- package/src/scss/all.scss +10 -0
- package/src/scss/all_no_layer.scss +26 -0
- package/src/scss/base/_dom.scss +140 -0
- package/src/scss/base/_tokens.scss +307 -0
- package/src/scss/base/index.scss +70 -0
- package/src/scss/dynamic/index.scss +4 -0
- package/src/scss/layout/__switcher.scss +11 -0
- package/src/scss/layout/_center.scss +5 -0
- package/src/scss/layout/_columns.scss +18 -0
- package/src/scss/layout/_divider.scss +6 -0
- package/src/scss/layout/_flex.scss +12 -0
- package/src/scss/layout/_frame.scss +13 -0
- package/src/scss/layout/_grid.scss +16 -0
- package/src/scss/layout/_icon.scss +19 -0
- package/src/scss/layout/_spacer.scss +3 -0
- package/src/scss/layout/_stack.scss +4 -0
- package/src/scss/layout/_withSide.scss +20 -0
- package/src/scss/layout/index.scss +12 -0
- package/src/scss/props/__/__aspect.bkup.scss +36 -0
- package/src/scss/props/__/__border.bkup.scss +197 -0
- package/src/scss/props/__/__color.bkup.scss +67 -0
- package/src/scss/props/__/__display.bukup.scss +11 -0
- package/src/scss/props/__/__flex-props.bkup.scss +66 -0
- package/src/scss/props/__/__gap.bkup.scss +18 -0
- package/src/scss/props/__/__grid-props.bkup.scss +158 -0
- package/src/scss/props/__/__margin.bkup.scss +92 -0
- package/src/scss/props/__/__padding.bkup.scss +93 -0
- package/src/scss/props/__/__place.bkup.scss +74 -0
- package/src/scss/props/__/__radius.bkup.scss +27 -0
- package/src/scss/props/__/__sizing.bkup.scss +45 -0
- package/src/scss/props/__/__typography.bkup.scss +146 -0
- package/src/scss/props/__memo.scss +15 -0
- package/src/scss/props/_border.scss +67 -0
- package/src/scss/props/_color.scss +16 -0
- package/src/scss/props/_hover.scss +73 -0
- package/src/scss/props/_transition.scss +20 -0
- package/src/scss/props/index.scss +12 -0
- package/src/scss/reset.scss +99 -0
- package/src/scss/state/__container.bkup.scss +145 -0
- package/src/scss/state/__flow.bkup.scss +52 -0
- package/src/scss/state/_container.scss +45 -0
- package/src/scss/state/_flow.scss +45 -0
- package/src/scss/state/_gutter.scss +3 -0
- package/src/scss/state/_has-divider.scss +30 -0
- package/src/scss/state/_layer.scss +7 -0
- package/src/scss/state/_linkbox.scss +18 -0
- package/src/scss/state/_size.scss +60 -0
- package/src/scss/state/index.scss +8 -0
- package/src/scss/utility/index.scss +76 -0
- package/src/scss/with_layer.scss +28 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
@use './setting' as setting;
|
|
4
|
+
|
|
5
|
+
@mixin bp-up($bp_name) {
|
|
6
|
+
$bp_size: map.get(setting.$breakpoints, $bp_name);
|
|
7
|
+
|
|
8
|
+
// サイズが 0 の時はスキップ(カスタマイズでオフにできるように)
|
|
9
|
+
@if $bp_size and $bp_size != 0 {
|
|
10
|
+
@if setting.$is_container_query == 1 {
|
|
11
|
+
@container (min-width: #{$bp_size}) {
|
|
12
|
+
@content;
|
|
13
|
+
}
|
|
14
|
+
} @else {
|
|
15
|
+
@media (min-width: #{$bp_size}) {
|
|
16
|
+
@content;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
@mixin bp-down($bp_name) {
|
|
22
|
+
$bp_size: map.get(setting.$breakpoints, $bp_name);
|
|
23
|
+
// サイズが 0 の時はスキップ(カスタマイズでオフにできるように)
|
|
24
|
+
@if $bp_size and $bp_size != 0 {
|
|
25
|
+
@if setting.$is_container_query == 1 {
|
|
26
|
+
@container not (min-width: #{$bp_size}) {
|
|
27
|
+
@content;
|
|
28
|
+
}
|
|
29
|
+
} @else {
|
|
30
|
+
@media not (min-width: #{$bp_size}) {
|
|
31
|
+
@content;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 600px未満
|
|
38
|
+
// @media not all and (min-width: 600px) {
|
|
39
|
+
// @content;
|
|
40
|
+
// }
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use 'sass:string';
|
|
3
|
+
|
|
4
|
+
@use './props' as props;
|
|
5
|
+
|
|
6
|
+
$layer_mode: 0 !default;
|
|
7
|
+
$default_important: 0 !default;
|
|
8
|
+
$is_container_query: 1 !default;
|
|
9
|
+
$common_support_bp: 'lg' !default;
|
|
10
|
+
|
|
11
|
+
$breakpoints: () !default;
|
|
12
|
+
$breakpoints: map.merge(
|
|
13
|
+
(
|
|
14
|
+
'sm': '480px',
|
|
15
|
+
'md': '720px',
|
|
16
|
+
'lg': '960px',
|
|
17
|
+
),
|
|
18
|
+
$breakpoints
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
$props: () !default;
|
|
22
|
+
$props: map.deep-merge(props.$props, $props);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
resetした上で、 各要素の標準スタイルを定義する
|
|
3
|
+
*/
|
|
4
|
+
// reset
|
|
5
|
+
@use './reset' as reset;
|
|
6
|
+
|
|
7
|
+
// base
|
|
8
|
+
@use './base/index' as base;
|
|
9
|
+
|
|
10
|
+
// layout state
|
|
11
|
+
@use './state/index' as state;
|
|
12
|
+
|
|
13
|
+
// layout modules
|
|
14
|
+
@use './layout/index' as layout;
|
|
15
|
+
|
|
16
|
+
// dynamic modules
|
|
17
|
+
@use './dynamic/index' as dynamic;
|
|
18
|
+
|
|
19
|
+
// other modules
|
|
20
|
+
// @use './component/index' as component;
|
|
21
|
+
|
|
22
|
+
// utility
|
|
23
|
+
@use './utility/index' as utility;
|
|
24
|
+
|
|
25
|
+
// props
|
|
26
|
+
@use './props/index' as props;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
@use '../_mixin' as mixin;
|
|
2
|
+
|
|
3
|
+
/* ----------------------------------------
|
|
4
|
+
html, body
|
|
5
|
+
---------------------------------------- */
|
|
6
|
+
html {
|
|
7
|
+
font-size: var(--root-fz);
|
|
8
|
+
|
|
9
|
+
tab-size: 4;
|
|
10
|
+
|
|
11
|
+
// iOSで横向きにした時のフォントサイズ自動調節をオフにする.
|
|
12
|
+
text-size-adjust: none;
|
|
13
|
+
|
|
14
|
+
/* テキストのレンダリングを改善 → font によっては薄くなりすぎるのでナシ */
|
|
15
|
+
/* -webkit-font-smoothing: antialiased; */
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
body {
|
|
19
|
+
font-size: 1rem;
|
|
20
|
+
font-family: var(--ff--base);
|
|
21
|
+
line-height: var(--lh--base);
|
|
22
|
+
letter-spacing: var(--lts--base);
|
|
23
|
+
background-color: var(--c--base);
|
|
24
|
+
color: var(--c--text);
|
|
25
|
+
overflow-x: clip;
|
|
26
|
+
// 子孫要素の position:fixed の挙動が変わってしまうので body には使わない
|
|
27
|
+
// container-type: inline-size;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* ----------------------------------------
|
|
31
|
+
Heading
|
|
32
|
+
---------------------------------------- */
|
|
33
|
+
@include mixin.maybe_where('h1, h2, h3, h4, h5, h6', '') {
|
|
34
|
+
font-family: var(--heading-ff, inherit);
|
|
35
|
+
font-weight: var(--heading-fw, bolder);
|
|
36
|
+
font-size: var(--fz, revert);
|
|
37
|
+
line-height: var(--lh, inherit);
|
|
38
|
+
}
|
|
39
|
+
h1 {
|
|
40
|
+
--fz: var(--fz--3xl);
|
|
41
|
+
--lh: var(--lh--xs);
|
|
42
|
+
}
|
|
43
|
+
h2 {
|
|
44
|
+
--fz: var(--fz--2xl);
|
|
45
|
+
--lh: var(--lh--xs);
|
|
46
|
+
}
|
|
47
|
+
h3 {
|
|
48
|
+
--fz: var(--fz--xl);
|
|
49
|
+
--lh: var(--lh--s);
|
|
50
|
+
}
|
|
51
|
+
h4 {
|
|
52
|
+
--fz: var(--fz--l);
|
|
53
|
+
--lh: var(--lh--s);
|
|
54
|
+
}
|
|
55
|
+
h5 {
|
|
56
|
+
--fz: var(--fz--m);
|
|
57
|
+
// --lh: var(--lh--s);
|
|
58
|
+
}
|
|
59
|
+
h6 {
|
|
60
|
+
--fz: var(--fz--s);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* ----------------------------------------
|
|
64
|
+
list
|
|
65
|
+
---------------------------------------- */
|
|
66
|
+
@include mixin.maybe_where('ul, ol', '') {
|
|
67
|
+
list-style: none;
|
|
68
|
+
padding: 0;
|
|
69
|
+
padding-inline-start: var(--list-pis, 0);
|
|
70
|
+
}
|
|
71
|
+
// classを持たない素の ul,ol はブラウザ標準のスタイルを復活させる
|
|
72
|
+
@include mixin.maybe_where('ul, ol', 'is') {
|
|
73
|
+
&:not([class]) {
|
|
74
|
+
--list-pis: 1.5em;
|
|
75
|
+
list-style: revert;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* ----------------------------------------
|
|
80
|
+
texts
|
|
81
|
+
---------------------------------------- */
|
|
82
|
+
// link
|
|
83
|
+
@include mixin.maybe_where('a', '') {
|
|
84
|
+
color: var(--c--link);
|
|
85
|
+
text-decoration: var(--link-td, underline);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* ----------------------------------------
|
|
89
|
+
table
|
|
90
|
+
---------------------------------------- */
|
|
91
|
+
@include mixin.maybe_where('td, th', '') {
|
|
92
|
+
padding: var(--cell-p, 0.5em);
|
|
93
|
+
min-inline-size: var(--cell-minIs, unset);
|
|
94
|
+
}
|
|
95
|
+
@include mixin.maybe_where('th', '') {
|
|
96
|
+
color: var(--th-c, inherit);
|
|
97
|
+
background-color: var(--th-bgc, transparent);
|
|
98
|
+
}
|
|
99
|
+
@include mixin.maybe_where('td', '') {
|
|
100
|
+
color: var(--td-c, inherit);
|
|
101
|
+
background-color: var(--td-bgc, transparent);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* ----------------------------------------
|
|
105
|
+
others
|
|
106
|
+
---------------------------------------- */
|
|
107
|
+
@include mixin.maybe_where('hr', '') {
|
|
108
|
+
border: none;
|
|
109
|
+
border-block-start: 1px solid;
|
|
110
|
+
block-size: 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@include mixin.maybe_where('blockquote', '') {
|
|
114
|
+
border-inline-start: solid 3px currentColor;
|
|
115
|
+
padding: var(--s30);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@include mixin.maybe_where('pre', '') {
|
|
119
|
+
// 横にスクロールできるように(overflow-inline: auto; ← まだ使えない)
|
|
120
|
+
overflow-x: auto; // 縦書きモードにしてもこれでいけた
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* ----------------------------------------
|
|
124
|
+
Form fields
|
|
125
|
+
---------------------------------------- */
|
|
126
|
+
// :where(input[type='text'], textarea, select) {
|
|
127
|
+
// padding: var(--s10);
|
|
128
|
+
// }
|
|
129
|
+
|
|
130
|
+
/* ----------------------------------------
|
|
131
|
+
dialog
|
|
132
|
+
---------------------------------------- */
|
|
133
|
+
// showModal()にのみ適用するため、 dialog ではなく :modal を使用
|
|
134
|
+
@include mixin.switch_selector('body:has(:modal[open])', 'body:where(:has(:modal[open]))') {
|
|
135
|
+
overflow: hidden;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@include mixin.switch_selector('dialog:not([open])', 'dialog:where(:not([open]))') {
|
|
139
|
+
pointer-events: none;
|
|
140
|
+
}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* ------------------------------------------------------------
|
|
3
|
+
コンテンツサイズ: ユーザー側で定義が必要
|
|
4
|
+
コンテンツサイズは960 ~ 1120 くらいがよさそう.
|
|
5
|
+
1080 にしてるのは、 1920 * 1080画像がきれいに配置できるため?
|
|
6
|
+
------------------------------------------------------------ */
|
|
7
|
+
// コンテンツサイズは960 ~ 1120 くらいがよさそう. @lg よりは大きく
|
|
8
|
+
--size--xl: 1600px; // 80*20
|
|
9
|
+
--size--l: 1280px; // 80*16
|
|
10
|
+
--size--m: 960px; // 80*12
|
|
11
|
+
--size--s: 640px; // 80*8
|
|
12
|
+
// --size--xs: 320px; // 80*4
|
|
13
|
+
--size--xs: 16rem; // 最低限維持したいアイテムサイズの標準値。withSide,reel,columns で使用
|
|
14
|
+
|
|
15
|
+
/* ------------------------------------------------------------
|
|
16
|
+
Spacing
|
|
17
|
+
------------------------------------------------------------ */
|
|
18
|
+
--herfLeading: calc((1lh - 1em) / 2);
|
|
19
|
+
|
|
20
|
+
// フィボナッチ数列 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
|
|
21
|
+
// 0 .25rem, .5rem, .75rem, 1.25rem, M:(8):2rem, 3.25rem, 5.25rem, 8.5rem
|
|
22
|
+
|
|
23
|
+
// 1=0.125 Fibonacci数列
|
|
24
|
+
// --s1: 0.125rem;
|
|
25
|
+
--s5: 0.25rem;
|
|
26
|
+
--s10: 0.375rem;
|
|
27
|
+
// --s15: 0.5rem;
|
|
28
|
+
--s20: 0.625rem;
|
|
29
|
+
--s30: 1rem;
|
|
30
|
+
--s40: 1.625rem;
|
|
31
|
+
--s50: 2.625rem;
|
|
32
|
+
--s60: 4.25rem;
|
|
33
|
+
--s70: 6.875rem;
|
|
34
|
+
--s80: 11.125rem;
|
|
35
|
+
// --s90: 18rem;
|
|
36
|
+
|
|
37
|
+
// テキストのline-height分を考慮した上下左右の余白
|
|
38
|
+
// --p--box--s: 0.75em; //calc(0.75em - var(--herfLeading)) 0.75em; //0.625em 0.75em;
|
|
39
|
+
// --p--box: calc(1.25em - var(--herfLeading)) 1.25em;
|
|
40
|
+
// --p--box--l: calc(1.75em - var(--herfLeading)) 1.75em; //1.375em 1.5em;
|
|
41
|
+
|
|
42
|
+
// .is--flow の余白
|
|
43
|
+
// --flowGap-offset: calc(var(--herfLeading) * 2);
|
|
44
|
+
--flowGap--s: var(--s30);
|
|
45
|
+
--flowGap--m: var(--s40);
|
|
46
|
+
--flowGap--l: var(--s50);
|
|
47
|
+
--flowGap--h: 2.5em;
|
|
48
|
+
// --flowGap: var(--flowGap--m);
|
|
49
|
+
|
|
50
|
+
// コンテンツの左右の余白
|
|
51
|
+
--gutter: var(--s40);
|
|
52
|
+
|
|
53
|
+
/* ------------------------------------------------------------
|
|
54
|
+
タイポグラフィ
|
|
55
|
+
------------------------------------------------------------ */
|
|
56
|
+
|
|
57
|
+
// --ff--sans: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Meiryo', sans-serif;
|
|
58
|
+
// --ff--serif: serif;
|
|
59
|
+
|
|
60
|
+
--ff--base:
|
|
61
|
+
-apple-system, 'BlinkMacSystemFont', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo,
|
|
62
|
+
sans-serif, 'Segoe UI Emoji';
|
|
63
|
+
|
|
64
|
+
// Optima, Georgia, Garamond, Baskerville;
|
|
65
|
+
--ff--accent: 'Garamond', 'Baskerville', 'Times New Roman', serif;
|
|
66
|
+
--ff--mono: Menlo, Consolas, monaco, monospace;
|
|
67
|
+
|
|
68
|
+
// ------------------------------
|
|
69
|
+
// font-size 変数
|
|
70
|
+
// ------------------------------
|
|
71
|
+
// 倍音列(分子8) での計算値
|
|
72
|
+
// --fz--5xl: 4em; //calc(1em * 8 / 2);
|
|
73
|
+
// --fz--4xl: 2.667em; // calc(1em * 8 / 3);
|
|
74
|
+
// --fz--3xl: 2em; //calc(1em * 8 / 4);
|
|
75
|
+
// --fz--2xl: 1.6em; //calc(1em * 8 / 5);
|
|
76
|
+
// --fz--xl: 1.333em; //calc(1em * 8 / 6);
|
|
77
|
+
// --fz--l: 1.143em; //calc(1em * 8 / 7);
|
|
78
|
+
// --fz--m: 1em; // デフォルトでフォントサイズ 変わっているものを1emにリセットしたい時に必要
|
|
79
|
+
// --fz--s: 0.889em; // calc(1em * 8 / 9);
|
|
80
|
+
// --fz--xs: 0.8em; //calc(1em * 8 / 10);
|
|
81
|
+
// --fz--2xs: 0.727em; //calc(1em * 8 / 11);
|
|
82
|
+
|
|
83
|
+
--fz-mol: 8; // 7 ~ に対応.
|
|
84
|
+
// --fz--5xl: calc(1em * var(--fz-mol) / (var(--fz-mol) - 6));
|
|
85
|
+
--fz--4xl: calc(1em * var(--fz-mol) / (var(--fz-mol) - 5));
|
|
86
|
+
--fz--3xl: calc(1em * var(--fz-mol) / (var(--fz-mol) - 4));
|
|
87
|
+
--fz--2xl: calc(1em * var(--fz-mol) / (var(--fz-mol) - 3));
|
|
88
|
+
--fz--xl: calc(1em * var(--fz-mol) / (var(--fz-mol) - 2));
|
|
89
|
+
--fz--l: calc(1em * var(--fz-mol) / (var(--fz-mol) - 1));
|
|
90
|
+
--fz--m: 1em;
|
|
91
|
+
--fz--s: calc(1em * var(--fz-mol) / (var(--fz-mol) + 1));
|
|
92
|
+
--fz--xs: calc(1em * var(--fz-mol) / (var(--fz-mol) + 2));
|
|
93
|
+
--fz--2xs: calc(1em * var(--fz-mol) / (var(--fz-mol) + 3));
|
|
94
|
+
|
|
95
|
+
// clampでテキストサイズを変化させたい時用
|
|
96
|
+
// --fz-fluid--s: clamp(0.9rem, 0.75rem + 0.8cqw, 1rem); // 小さい方向のみ. 300: .9rem ~ 500: 1rem
|
|
97
|
+
// --fz-fluid: clamp(0.9rem, 0.8rem + 0.5cqw, 1.1rem); // 上下両方. 320: .9rem ~ 960: 1.1rem
|
|
98
|
+
// --fz-fluid--l: clamp(1rem, 0.9rem + 0.25cqw, 1.1rem); // 大きい方向のみ 640: 1rem a~ 960: 1.1rem
|
|
99
|
+
|
|
100
|
+
// ------------------------------
|
|
101
|
+
// font-weight
|
|
102
|
+
// ------------------------------
|
|
103
|
+
// --fw--thin: 100;
|
|
104
|
+
--fw--light: 300;
|
|
105
|
+
--fw--normal: 400;
|
|
106
|
+
--fw--medium: 500;
|
|
107
|
+
--fw--bold: 700;
|
|
108
|
+
// --fw--heavy: 900;
|
|
109
|
+
|
|
110
|
+
// ------------------------------
|
|
111
|
+
// line-height
|
|
112
|
+
// ------------------------------
|
|
113
|
+
// tight snug - relaxed loose or shorter short - tall taller ?
|
|
114
|
+
--lh--base: 1.75;
|
|
115
|
+
--lh--xs: calc(var(--lh--base) - 0.25);
|
|
116
|
+
--lh--s: calc(var(--lh--base) - 0.125);
|
|
117
|
+
--lh--l: calc(var(--lh--base) + 0.125);
|
|
118
|
+
--lh--xl: calc(var(--lh--base) + 0.25);
|
|
119
|
+
|
|
120
|
+
// ------------------------------
|
|
121
|
+
// letter-spacing
|
|
122
|
+
// ------------------------------
|
|
123
|
+
--lts--base: normal;
|
|
124
|
+
--lts--s: -0.05em;
|
|
125
|
+
--lts--l: 0.05em;
|
|
126
|
+
--lts--xl: 0.125em;
|
|
127
|
+
|
|
128
|
+
// ------------------------------------------------------------
|
|
129
|
+
// カラー
|
|
130
|
+
// ------------------------------------------------------------
|
|
131
|
+
|
|
132
|
+
// --hsl-black: 0 0% 0%;
|
|
133
|
+
// --hsl-white: 0 0% 100%;
|
|
134
|
+
// --hsl-gray: 210 8% 40%;
|
|
135
|
+
// --hsl-red: 4 72% 50%;
|
|
136
|
+
// --hsl-orange: 28 76% 50%;
|
|
137
|
+
// --hsl-yellow: 46 76% 48%;
|
|
138
|
+
// --hsl-green: 145 80% 40%;
|
|
139
|
+
// --hsl-blue: 205 76% 50%;
|
|
140
|
+
// --hsl-purple: 258 72% 50%;
|
|
141
|
+
// --hsl-pink: 325 72% 50%;
|
|
142
|
+
// --black: hsl(var(--hsl-black));
|
|
143
|
+
// --white: hsl(var(--hsl-white));
|
|
144
|
+
// --gray: hsl(var(--hsl-gray));
|
|
145
|
+
// --red: hsl(var(--hsl-red));
|
|
146
|
+
// --orange: hsl(var(--hsl-orange));
|
|
147
|
+
// --yellow: hsl(var(--hsl-yellow));
|
|
148
|
+
// --green: hsl(var(--hsl-green));
|
|
149
|
+
// --blue: hsl(var(--hsl-blue));
|
|
150
|
+
// --purple: hsl(var(--hsl-purple));
|
|
151
|
+
// --pink: hsl(var(--hsl-pink));
|
|
152
|
+
--black: #000;
|
|
153
|
+
--white: #fff;
|
|
154
|
+
--gray: hsl(210 16% 40%);
|
|
155
|
+
--red: hsl(4 72% 50%);
|
|
156
|
+
--orange: hsl(26 80% 48%);
|
|
157
|
+
--yellow: hsl(48 80% 48%);
|
|
158
|
+
--green: hsl(132 76% 42%);
|
|
159
|
+
--blue: hsl(204 74% 50%);
|
|
160
|
+
--purple: hsl(260 72% 50%);
|
|
161
|
+
--pink: hsl(320 72% 50%);
|
|
162
|
+
|
|
163
|
+
// --------------------
|
|
164
|
+
// basic カラー
|
|
165
|
+
// --------------------
|
|
166
|
+
|
|
167
|
+
// ベースカラーに合わせたカラーを段階的に用意
|
|
168
|
+
// --hs--bc: 215 8%;
|
|
169
|
+
// --hsl--bc: 215 8% 60%;
|
|
170
|
+
|
|
171
|
+
// n50?
|
|
172
|
+
// --b50: hsl(var(--hs--bc) 99%);
|
|
173
|
+
// --b100: hsl(var(--hs--bc) 96%);
|
|
174
|
+
// --b200: hsl(var(--hs--bc) 92%);
|
|
175
|
+
// --b300: hsl(var(--hs--bc) 84%);
|
|
176
|
+
// --b400: hsl(var(--hs--bc) 72%);
|
|
177
|
+
// --b500: hsl(var(--hs--bc) 60%);
|
|
178
|
+
// --b600: hsl(var(--hs--bc) 48%);
|
|
179
|
+
// --b700: hsl(var(--hs--bc) 36%);
|
|
180
|
+
// --b800: hsl(var(--hs--bc) 24%); // 淡い文字色 strong背景色
|
|
181
|
+
// --b900: hsl(var(--hs--bc) 12%); // ほんの少しだけ淡い文字色.
|
|
182
|
+
// --b950: hsl(var(--hs--bcc) 8%); // 文字色
|
|
183
|
+
|
|
184
|
+
// --------------------
|
|
185
|
+
// キーワードカラー main(brand?), accent, base, ...
|
|
186
|
+
// --------------------
|
|
187
|
+
|
|
188
|
+
// Main Color
|
|
189
|
+
--c--main: #1e4e6b;
|
|
190
|
+
|
|
191
|
+
// accent, accent-2, accent-3
|
|
192
|
+
--c--accent: #bc3453;
|
|
193
|
+
// --c--accent-2: #bc3453;
|
|
194
|
+
// --c--accent-3: #bc3453;
|
|
195
|
+
|
|
196
|
+
// base, base-2, base-3 … 基本、濃くなっていく
|
|
197
|
+
// text, text-2, text-3 … 基本、薄くなっていく
|
|
198
|
+
|
|
199
|
+
// base
|
|
200
|
+
// --c--base: hsl(225 8% 98%);
|
|
201
|
+
--c--base: hsl(224 6% 99%);
|
|
202
|
+
--c--base-2: hsl(224 10% 94%);
|
|
203
|
+
// --c--base-3: hsl(220 8% 86%); // border用
|
|
204
|
+
|
|
205
|
+
// text
|
|
206
|
+
--c--text-hsl: 224 4% 8%; // shadowにも使う
|
|
207
|
+
--c--text: hsl(var(--c--text-hsl));
|
|
208
|
+
--c--text-2: hsl(224 4% 40%);
|
|
209
|
+
// --text-3: hsl(224, 4%, 50%); //hsl(200, 12%, 92%);
|
|
210
|
+
|
|
211
|
+
// --sh-hsl
|
|
212
|
+
|
|
213
|
+
// divider (border-color)
|
|
214
|
+
--c--divider: hsl(224 4% 82%);
|
|
215
|
+
--c--link: #0c61e4;
|
|
216
|
+
// --divider?
|
|
217
|
+
|
|
218
|
+
// ボーダーはどちらでも使える感じか。
|
|
219
|
+
// --bdc-pale,base,strong
|
|
220
|
+
|
|
221
|
+
/* ------------------------------------------------------------
|
|
222
|
+
opacity
|
|
223
|
+
------------------------------------------------------------ */
|
|
224
|
+
--op--low: 0.25;
|
|
225
|
+
--op--mid: 0.5;
|
|
226
|
+
--op--high: 0.75;
|
|
227
|
+
|
|
228
|
+
/* ------------------------------------------------------------
|
|
229
|
+
transition-duration
|
|
230
|
+
------------------------------------------------------------ */
|
|
231
|
+
--trsdu--default: 0.4s;
|
|
232
|
+
--trsdu--modal: 0.5s;
|
|
233
|
+
--trsdu--acc: 0.4s;
|
|
234
|
+
|
|
235
|
+
/* ------------------------------------------------------------
|
|
236
|
+
radius
|
|
237
|
+
------------------------------------------------------------ */
|
|
238
|
+
// 等比
|
|
239
|
+
--bdrs--1: 0.125rem; // base
|
|
240
|
+
--bdrs--2: 0.25rem; // * 2
|
|
241
|
+
--bdrs--3: 0.5rem; // * 4
|
|
242
|
+
--bdrs--4: 1rem; // * 8
|
|
243
|
+
--bdrs--5: 2rem; // * 16
|
|
244
|
+
--bdrs--99: 99rem;
|
|
245
|
+
|
|
246
|
+
// 1, 2, 3, 5, 8, 13,
|
|
247
|
+
// --bdrs--1: 0.125rem;
|
|
248
|
+
// --bdrs--2: 0.25rem; // base
|
|
249
|
+
// --bdrs--3: 0.5rem; // * 2
|
|
250
|
+
// --bdrs--4: 0.75rem; // * 3
|
|
251
|
+
// --bdrs--5: 1.25rem; // * 5
|
|
252
|
+
// --bdrs--99: 99rem;
|
|
253
|
+
|
|
254
|
+
/* ------------------------------------------------------------
|
|
255
|
+
shadow
|
|
256
|
+
------------------------------------------------------------ */
|
|
257
|
+
// --sh-hsl: 220 20% 20%;
|
|
258
|
+
--sh-hsl: var(--c--text-hsl);
|
|
259
|
+
--sh-a: 6%;
|
|
260
|
+
|
|
261
|
+
// --sh-a--base: calc(var(--sh-a) - 4%);
|
|
262
|
+
// --sh-color--base: hsl(var(--sh-hsl) / var(--sh-a--base));
|
|
263
|
+
|
|
264
|
+
// x: fibo
|
|
265
|
+
// y: sh5 で x:y が 1:2。低い位置にあるほど比率を小さく。
|
|
266
|
+
// blur: x + y
|
|
267
|
+
// --sh-sz--0: 1px 1px 2px 0;
|
|
268
|
+
// --sh-sz--1: 2px 3px 5px 0;
|
|
269
|
+
// --sh-sz--2: 3px 5px 8px 0;
|
|
270
|
+
// --sh-sz--3: 5px 9px 15px 0;
|
|
271
|
+
// --sh-sz--4: 8px 16px 24px 0;
|
|
272
|
+
// --sh-sz--5: 13px 26px 39px 0;
|
|
273
|
+
|
|
274
|
+
// x:fibo, x:y=1:2, blur:y*2 のパターン
|
|
275
|
+
--sh-sz--0: 1px 2px 4px 0;
|
|
276
|
+
--sh-sz--1: 2px 4px 8px 0;
|
|
277
|
+
--sh-sz--2: 3px 6px 12px 0;
|
|
278
|
+
--sh-sz--3: 5px 10px 20px 0;
|
|
279
|
+
--sh-sz--4: 8px 16px 32px 0;
|
|
280
|
+
--sh-sz--5: 13px 26px 52px 0;
|
|
281
|
+
|
|
282
|
+
// 1:2 で xが等比パターン
|
|
283
|
+
// --sh-sz--0: 0px 1px 2px 0;
|
|
284
|
+
// --sh-sz--1: 1px 2px 4px 0;
|
|
285
|
+
// --sh-sz--2: 2px 4px 8px 0;
|
|
286
|
+
// --sh-sz--3: 4px 8px 16px 0;
|
|
287
|
+
// --sh-sz--4: 8px 16px 32px 0;
|
|
288
|
+
// --sh-sz--5: 16px 32px 64px 0;
|
|
289
|
+
|
|
290
|
+
/* ------------------------------------------------------------
|
|
291
|
+
filter
|
|
292
|
+
------------------------------------------------------------ */
|
|
293
|
+
// --filter--blur: blur(4px);
|
|
294
|
+
// --filter--blur--l: blur(8px);
|
|
295
|
+
// --filter--lighten: brightness(1.15);
|
|
296
|
+
// --filter--darken: brightness(0.85);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// :lang(en) {
|
|
300
|
+
// --herfLeading: calc((1lh - 1cap) / 2);
|
|
301
|
+
// }
|
|
302
|
+
// lh非サポートブラウザ用のフォールバック
|
|
303
|
+
@supports not (gap: 1lh) {
|
|
304
|
+
:root {
|
|
305
|
+
--herfLeading: 0.125em;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
@use '../_mixin' as mixin;
|
|
2
|
+
|
|
3
|
+
@forward './tokens';
|
|
4
|
+
|
|
5
|
+
// 各html要素のベーススタイル
|
|
6
|
+
@forward './dom';
|
|
7
|
+
|
|
8
|
+
/* ----------------------------------------
|
|
9
|
+
デザイントークンとは別の設定値
|
|
10
|
+
---------------------------------------- */
|
|
11
|
+
:root {
|
|
12
|
+
--root-fz: clamp(0.875rem, 0.625rem + 1vw, 1rem); // 画面サイズ 400 - 600 で可変
|
|
13
|
+
|
|
14
|
+
// hover用
|
|
15
|
+
--hov-trsdu: 0.3s;
|
|
16
|
+
|
|
17
|
+
// is--overwide で使用
|
|
18
|
+
--overwide-size: 100vw;
|
|
19
|
+
|
|
20
|
+
// :rootで初期セットしてないが定義可能な変数
|
|
21
|
+
// --heading-ff
|
|
22
|
+
// --heading-fw
|
|
23
|
+
// --link-td
|
|
24
|
+
// --list-pis
|
|
25
|
+
// --cell-p
|
|
26
|
+
// --cell-minIs
|
|
27
|
+
// --td|th-c
|
|
28
|
+
// --td|th-bgc
|
|
29
|
+
// --acc-duration
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:root,
|
|
33
|
+
.re--sh {
|
|
34
|
+
--sh-color: hsl(var(--sh-hsl) / var(--sh-a));
|
|
35
|
+
// カラー変数込みで変数をセットしてしまうと、--sh-color がこの時点で固定されてしまう。
|
|
36
|
+
// --sh-size-1: 0.5px 1px 1px 0 var(--sh-color);
|
|
37
|
+
--bxsh--1: var(--sh-sz--0) var(--sh-color), var(--sh-sz--1) var(--sh-color);
|
|
38
|
+
--bxsh--2: var(--sh-sz--1) var(--sh-color), var(--sh-sz--2) var(--sh-color);
|
|
39
|
+
--bxsh--3: var(--sh-sz--2) var(--sh-color), var(--sh-sz--3) var(--sh-color);
|
|
40
|
+
--bxsh--4: var(--sh-sz--3) var(--sh-color), var(--sh-sz--4) var(--sh-color);
|
|
41
|
+
--bxsh--5: var(--sh-sz--4) var(--sh-color), var(--sh-sz--5) var(--sh-color);
|
|
42
|
+
|
|
43
|
+
--bxsh--i1: inset var(--sh-sz--0) var(--sh-color), inset var(--sh-sz--1) var(--sh-color);
|
|
44
|
+
--bxsh--i2: inset var(--sh-sz--1) var(--sh-color), inset var(--sh-sz--2) var(--sh-color);
|
|
45
|
+
// --bxsh--i3: inset var(--sh-sz--2) var(--sh-color), inset var(--sh-sz--3) var(--sh-color);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* -----
|
|
49
|
+
プロパティリセット系クラス。
|
|
50
|
+
----- */
|
|
51
|
+
|
|
52
|
+
// Note: dialog に影響する
|
|
53
|
+
@include mixin.maybe_where('.re--style', '') {
|
|
54
|
+
width: auto;
|
|
55
|
+
height: auto;
|
|
56
|
+
max-width: unset;
|
|
57
|
+
max-height: unset;
|
|
58
|
+
color: inherit;
|
|
59
|
+
background: none;
|
|
60
|
+
border: none;
|
|
61
|
+
padding: 0;
|
|
62
|
+
margin: 0;
|
|
63
|
+
font: inherit;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ブラウザデフォルトのような見た目に戻す(:not([class]) と同じ)
|
|
67
|
+
.re--list {
|
|
68
|
+
--list-pis: 1.5em;
|
|
69
|
+
list-style: revert;
|
|
70
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// --------------------
|
|
2
|
+
// カラム
|
|
3
|
+
// 他のgrid 要素を指定することはない & flex か grid かパッと判断できないので個別にモジュール化。
|
|
4
|
+
// --------------------
|
|
5
|
+
.l--columns {
|
|
6
|
+
--cols: 2; // 初期値
|
|
7
|
+
display: grid;
|
|
8
|
+
grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.l--columns--liquid {
|
|
12
|
+
// auto-fill or auto-fit : 親の幅に対してアイテムが少ない時に、引き伸ばすか、伸ばさないか
|
|
13
|
+
--col-auto: auto-fill;
|
|
14
|
+
--col-size: var(--size--xs);
|
|
15
|
+
|
|
16
|
+
display: grid;
|
|
17
|
+
grid-template-columns: repeat(var(--col-auto), minmax(min(var(--col-size), 100%), 1fr));
|
|
18
|
+
}
|