@ippon-ui/ui 0.0.2
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/.agents/agents/component-library-create-from-pattern-library.agent.md +37 -0
- package/.agents/agents/patten-library-create-component.agent.md +30 -0
- package/.agents/skills/component-library/SKILL.md +169 -0
- package/.agents/skills/pattern-library/SKILL.md +277 -0
- package/.github/workflows/build.yml +34 -0
- package/.gitlab-ci.yml +12 -0
- package/.prettierignore +6 -0
- package/AGENTS.md +50 -0
- package/LICENSE +202 -0
- package/ci/build.yml +15 -0
- package/ci/common.yml +42 -0
- package/ci/deploy.yml +20 -0
- package/icons/LICENCE +202 -0
- package/icons/index.ts +69 -0
- package/icons/package.json +25 -0
- package/icons/tsconfig.json +11 -0
- package/lefthook.yml +10 -0
- package/mise.toml +55 -0
- package/package.json +26 -0
- package/pnpm-workspace.yaml +9 -0
- package/prettier.config.mts +8 -0
- package/react/LICENCE +202 -0
- package/react/README.md +75 -0
- package/react/eslint.config.js +22 -0
- package/react/package.json +63 -0
- package/react/src/CAP.ts +14 -0
- package/react/src/Card.ts +2 -0
- package/react/src/DataSelectable.ts +7 -0
- package/react/src/Grid.ts +33 -0
- package/react/src/IpponBadge.tsx +62 -0
- package/react/src/IpponButton.tsx +93 -0
- package/react/src/IpponButtonCard.tsx +34 -0
- package/react/src/IpponCard.tsx +30 -0
- package/react/src/IpponContainer.tsx +15 -0
- package/react/src/IpponGrid.tsx +56 -0
- package/react/src/IpponHSpace.tsx +56 -0
- package/react/src/IpponIcon.tsx +15 -0
- package/react/src/IpponImportFile.tsx +128 -0
- package/react/src/IpponIon.tsx +45 -0
- package/react/src/IpponMeter.tsx +43 -0
- package/react/src/IpponProgress.tsx +45 -0
- package/react/src/IpponText.tsx +56 -0
- package/react/src/IpponTitle.tsx +45 -0
- package/react/src/IpponVSpace.tsx +43 -0
- package/react/src/Optional.ts +177 -0
- package/react/src/Tokens.ts +36 -0
- package/react/src/index.ts +16 -0
- package/react/test/File.fixture.ts +13 -0
- package/react/test/IpponBadge.spec.tsx +245 -0
- package/react/test/IpponButton.spec.tsx +666 -0
- package/react/test/IpponButtonCard.spec.tsx +162 -0
- package/react/test/IpponCard.spec.tsx +133 -0
- package/react/test/IpponContainer.spec.tsx +56 -0
- package/react/test/IpponGrid.spec.tsx +140 -0
- package/react/test/IpponHSpace.spec.tsx +107 -0
- package/react/test/IpponIcon.spec.tsx +37 -0
- package/react/test/IpponImportFile.spec.tsx +431 -0
- package/react/test/IpponIon.spec.tsx +52 -0
- package/react/test/IpponMeter.spec.tsx +59 -0
- package/react/test/IpponProgress.spec.tsx +68 -0
- package/react/test/IpponText.spec.tsx +149 -0
- package/react/test/IpponTitle.spec.tsx +242 -0
- package/react/test/IpponVSpace.spec.tsx +91 -0
- package/react/tsconfig.app.json +24 -0
- package/react/tsconfig.json +4 -0
- package/react/tsconfig.node.json +23 -0
- package/react/vite.config.ts +30 -0
- package/react/vitest.config.ts +21 -0
- package/styles/.editorconfig +12 -0
- package/styles/.stylelintrc.json +75 -0
- package/styles/LICENCE +202 -0
- package/styles/README.md +107 -0
- package/styles/logo.svg +26 -0
- package/styles/package.json +67 -0
- package/styles/src/atom/_atom.scss +9 -0
- package/styles/src/atom/atom.pug +34 -0
- package/styles/src/atom/badge/_badge.scss +108 -0
- package/styles/src/atom/badge/badge.code.pug +29 -0
- package/styles/src/atom/badge/badge.md +1 -0
- package/styles/src/atom/badge/badge.mixin.pug +24 -0
- package/styles/src/atom/badge/badge.render.pug +7 -0
- package/styles/src/atom/button/_button.scss +242 -0
- package/styles/src/atom/button/button.code.pug +38 -0
- package/styles/src/atom/button/button.md +31 -0
- package/styles/src/atom/button/button.mixin.pug +30 -0
- package/styles/src/atom/button/button.render.pug +13 -0
- package/styles/src/atom/icon/_icon.scss +8 -0
- package/styles/src/atom/icon/icon.code.pug +5 -0
- package/styles/src/atom/icon/icon.md +11 -0
- package/styles/src/atom/icon/icon.mixin.pug +8 -0
- package/styles/src/atom/icon/icon.render.pug +7 -0
- package/styles/src/atom/ion/ion.code.pug +8 -0
- package/styles/src/atom/ion/ion.md +11 -0
- package/styles/src/atom/ion/ion.mixin.pug +8 -0
- package/styles/src/atom/ion/ion.render.pug +7 -0
- package/styles/src/atom/meter/_meter.scss +23 -0
- package/styles/src/atom/meter/meter.code.pug +8 -0
- package/styles/src/atom/meter/meter.md +7 -0
- package/styles/src/atom/meter/meter.mixin.pug +12 -0
- package/styles/src/atom/meter/meter.render.pug +5 -0
- package/styles/src/atom/progress/_progress.scss +23 -0
- package/styles/src/atom/progress/progress.code.pug +8 -0
- package/styles/src/atom/progress/progress.md +7 -0
- package/styles/src/atom/progress/progress.mixin.pug +14 -0
- package/styles/src/atom/progress/progress.render.pug +5 -0
- package/styles/src/atom/tab/_tab.scss +48 -0
- package/styles/src/atom/tab/tab.code.pug +5 -0
- package/styles/src/atom/tab/tab.md +1 -0
- package/styles/src/atom/tab/tab.mixin.pug +14 -0
- package/styles/src/atom/tab/tab.render.pug +4 -0
- package/styles/src/atom/text/_text.scss +74 -0
- package/styles/src/atom/text/text.code.pug +19 -0
- package/styles/src/atom/text/text.md +5 -0
- package/styles/src/atom/text/text.mixin.pug +12 -0
- package/styles/src/atom/text/text.render.pug +7 -0
- package/styles/src/atom/title/_title.scss +68 -0
- package/styles/src/atom/title/title.code.pug +25 -0
- package/styles/src/atom/title/title.md +9 -0
- package/styles/src/atom/title/title.mixin.pug +12 -0
- package/styles/src/atom/title/title.render.pug +5 -0
- package/styles/src/atom/title-display/_title-display.scss +26 -0
- package/styles/src/atom/title-display/title-display.code.pug +9 -0
- package/styles/src/atom/title-display/title-display.md +5 -0
- package/styles/src/atom/title-display/title-display.mixin.pug +6 -0
- package/styles/src/atom/title-display/title-display.render.pug +4 -0
- package/styles/src/doc.scss +2 -0
- package/styles/src/favicon.ico +0 -0
- package/styles/src/function/_conversion.scss +9 -0
- package/styles/src/index.pug +59 -0
- package/styles/src/layout-documentation.pug +14 -0
- package/styles/src/layout.pug +17 -0
- package/styles/src/molecule/_molecule.scss +2 -0
- package/styles/src/molecule/import-file/_import-file.scss +38 -0
- package/styles/src/molecule/import-file/import-file.code.pug +4 -0
- package/styles/src/molecule/import-file/import-file.md +1 -0
- package/styles/src/molecule/import-file/import-file.mixin.pug +15 -0
- package/styles/src/molecule/import-file/import-file.render.pug +5 -0
- package/styles/src/molecule/molecule.pug +20 -0
- package/styles/src/molecule/tabs/_tabs.scss +4 -0
- package/styles/src/molecule/tabs/tabs.code.pug +9 -0
- package/styles/src/molecule/tabs/tabs.md +1 -0
- package/styles/src/molecule/tabs/tabs.mixin.pug +4 -0
- package/styles/src/molecule/tabs/tabs.render.pug +4 -0
- package/styles/src/molecule/toggle/_toggle.scss +68 -0
- package/styles/src/molecule/toggle/toggle.code.pug +26 -0
- package/styles/src/molecule/toggle/toggle.md +1 -0
- package/styles/src/molecule/toggle/toggle.mixin.pug +36 -0
- package/styles/src/molecule/toggle/toggle.render.pug +5 -0
- package/styles/src/organism/_abstract-card.scss +36 -0
- package/styles/src/organism/_docorganism.scss +1 -0
- package/styles/src/organism/_organism.scss +8 -0
- package/styles/src/organism/button-card/_button-card.scss +22 -0
- package/styles/src/organism/button-card/button-card.code.pug +31 -0
- package/styles/src/organism/button-card/button-card.md +28 -0
- package/styles/src/organism/button-card/button-card.mixin.pug +8 -0
- package/styles/src/organism/button-card/button-card.render.pug +7 -0
- package/styles/src/organism/card/_card.scss +6 -0
- package/styles/src/organism/card/card.code.pug +9 -0
- package/styles/src/organism/card/card.md +23 -0
- package/styles/src/organism/card/card.mixin.pug +7 -0
- package/styles/src/organism/card/card.render.pug +7 -0
- package/styles/src/organism/container/_container.scss +3 -0
- package/styles/src/organism/container/container.code.pug +13 -0
- package/styles/src/organism/container/container.md +5 -0
- package/styles/src/organism/container/container.mixin.pug +3 -0
- package/styles/src/organism/container/container.render.pug +4 -0
- package/styles/src/organism/grid/_docgrid.scss +11 -0
- package/styles/src/organism/grid/_grid.scss +84 -0
- package/styles/src/organism/grid/grid.code.pug +25 -0
- package/styles/src/organism/grid/grid.md +1 -0
- package/styles/src/organism/grid/grid.mixin.pug +7 -0
- package/styles/src/organism/grid/grid.render.pug +5 -0
- package/styles/src/organism/h-space/_h-space.scss +49 -0
- package/styles/src/organism/h-space/h-space.code.pug +56 -0
- package/styles/src/organism/h-space/h-space.md +22 -0
- package/styles/src/organism/h-space/h-space.mixin.pug +14 -0
- package/styles/src/organism/h-space/h-space.render.pug +5 -0
- package/styles/src/organism/header/_header.scss +8 -0
- package/styles/src/organism/header/header.code.pug +14 -0
- package/styles/src/organism/header/header.md +1 -0
- package/styles/src/organism/header/header.mixin.pug +7 -0
- package/styles/src/organism/header/header.render.pug +4 -0
- package/styles/src/organism/modal/_modal.scss +58 -0
- package/styles/src/organism/modal/modal.code.pug +68 -0
- package/styles/src/organism/modal/modal.md +1 -0
- package/styles/src/organism/modal/modal.mixin.pug +25 -0
- package/styles/src/organism/modal/modal.render.pug +4 -0
- package/styles/src/organism/organism.pug +30 -0
- package/styles/src/organism/v-space/_v-space.scss +45 -0
- package/styles/src/organism/v-space/v-space.code.pug +41 -0
- package/styles/src/organism/v-space/v-space.md +20 -0
- package/styles/src/organism/v-space/v-space.mixin.pug +7 -0
- package/styles/src/organism/v-space/v-space.render.pug +5 -0
- package/styles/src/quark/_breakpoint.scss +12 -0
- package/styles/src/quark/_font.scss +38 -0
- package/styles/src/quark/_gap.scss +34 -0
- package/styles/src/quark/_placeholder.scss +27 -0
- package/styles/src/quark/_shadow.scss +13 -0
- package/styles/src/quark/_typography.scss +146 -0
- package/styles/src/template/_template.scss +1 -0
- package/styles/src/template/layout/_layout.scss +20 -0
- package/styles/src/template/layout/layout.code.pug +11 -0
- package/styles/src/template/layout/layout.md +1 -0
- package/styles/src/template/layout/layout.mixin.pug +11 -0
- package/styles/src/template/layout/layout.render.pug +4 -0
- package/styles/src/template/template.pug +16 -0
- package/styles/src/tikui.scss +5 -0
- package/styles/src/token/_doctable.scss +14 -0
- package/styles/src/token/_doctoken.scss +1 -0
- package/styles/src/token/_size.scss +9 -0
- package/styles/src/token/_token.scss +5 -0
- package/styles/src/token/color/_color.scss +9 -0
- package/styles/src/token/color/color/_base.scss +65 -0
- package/styles/src/token/color/color/_brand.scss +13 -0
- package/styles/src/token/color/color/_error.scss +13 -0
- package/styles/src/token/color/color/_information-2.scss +13 -0
- package/styles/src/token/color/color/_information.scss +13 -0
- package/styles/src/token/color/color/_neutral.scss +20 -0
- package/styles/src/token/color/color/_semantic.scss +69 -0
- package/styles/src/token/color/color/_success.scss +13 -0
- package/styles/src/token/color/color/_warning.scss +13 -0
- package/styles/src/token/color/color.js +31 -0
- package/styles/src/token/color/color.mixin.pug +19 -0
- package/styles/src/token/color/color.pug +9 -0
- package/styles/src/token/color/color.render.pug +13 -0
- package/styles/src/token/radius/_radius.scss +8 -0
- package/styles/src/token/radius/radius.js +54 -0
- package/styles/src/token/radius/radius.mixin.pug +14 -0
- package/styles/src/token/radius/radius.pug +9 -0
- package/styles/src/token/radius/radius.render.pug +11 -0
- package/styles/src/token/shadow/_shadow.scss +22 -0
- package/styles/src/token/shadow/shadow.js +45 -0
- package/styles/src/token/shadow/shadow.mixin.pug +13 -0
- package/styles/src/token/shadow/shadow.pug +9 -0
- package/styles/src/token/shadow/shadow.render.pug +9 -0
- package/styles/src/token/token.js +38 -0
- package/styles/src/token/token.pug +25 -0
- package/styles/src/token/typography/_typography.scss +103 -0
- package/styles/src/token/typography/typography.js +32 -0
- package/styles/src/token/typography/typography.mixin.pug +17 -0
- package/styles/src/token/typography/typography.pug +9 -0
- package/styles/src/token/typography/typography.render.pug +19 -0
- package/styles/test/function/conversion.test.scss +20 -0
- package/styles/test/function/sass.spec.ts +6 -0
- package/styles/tikuiconfig.json +14 -0
- package/styles/tsconfig.json +10 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
@use '../../quark/typography';
|
|
2
|
+
@use '../../quark/font';
|
|
3
|
+
@use '../../quark/placeholder';
|
|
4
|
+
|
|
5
|
+
.ippon-text {
|
|
6
|
+
@include font.colors;
|
|
7
|
+
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 0;
|
|
10
|
+
|
|
11
|
+
&.-placeholder {
|
|
12
|
+
min-width: 10rem;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&.-body {
|
|
16
|
+
@include typography.body-medium;
|
|
17
|
+
|
|
18
|
+
&.-placeholder {
|
|
19
|
+
@include placeholder.placeholder(var(--ippon-typography-body-medium-line-height));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&.-bold {
|
|
23
|
+
@include typography.body-medium-bold;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&.-small {
|
|
27
|
+
@include typography.body-small;
|
|
28
|
+
|
|
29
|
+
&.-placeholder {
|
|
30
|
+
@include placeholder.placeholder(var(--ippon-typography-body-small-line-height));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&.-bold {
|
|
34
|
+
@include typography.body-small-bold;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&.-large {
|
|
39
|
+
@include typography.body-large;
|
|
40
|
+
|
|
41
|
+
&.-placeholder {
|
|
42
|
+
@include placeholder.placeholder(var(--ippon-typography-body-large-line-height));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&.-bold {
|
|
46
|
+
@include typography.body-large-bold;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&.-label {
|
|
52
|
+
@include typography.label-medium;
|
|
53
|
+
|
|
54
|
+
&.-placeholder {
|
|
55
|
+
@include placeholder.placeholder(var(--ippon-typography-label-medium-line-height));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&.-small {
|
|
59
|
+
@include typography.label-small;
|
|
60
|
+
|
|
61
|
+
&.-placeholder {
|
|
62
|
+
@include placeholder.placeholder(var(--ippon-typography-label-small-line-height));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&.-large {
|
|
67
|
+
@include typography.label-large;
|
|
68
|
+
|
|
69
|
+
&.-placeholder {
|
|
70
|
+
@include placeholder.placeholder(var(--ippon-typography-label-large-line-height));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
include text.mixin.pug
|
|
2
|
+
|
|
3
|
+
+ippon-text({ variant: 'body', size: 'small' }) Body Small
|
|
4
|
+
+ippon-text({ variant: 'body', size: 'small', weight: 'bold' }) Body Small bold
|
|
5
|
+
+ippon-text({ variant: 'body' }) Body Medium
|
|
6
|
+
+ippon-text({ variant: 'body', weight: 'bold' }) Body Medium bold
|
|
7
|
+
+ippon-text({ variant: 'body', size: 'large' }) Body Large
|
|
8
|
+
+ippon-text({ variant: 'body', size: 'large', weight: 'bold' }) Body Large bold
|
|
9
|
+
+ippon-text({ variant: 'label', size: 'small' }) Label Small
|
|
10
|
+
+ippon-text({ variant: 'label', size: 'small', weight: 'bold' }) Label Small bold
|
|
11
|
+
+ippon-text({ variant: 'label' }) Label Medium
|
|
12
|
+
+ippon-text({ variant: 'label', weight: 'bold' }) Label Medium bold
|
|
13
|
+
+ippon-text({ variant: 'label', size: 'large' }) Label Large
|
|
14
|
+
+ippon-text({ variant: 'label', size: 'large', weight: 'bold' }) Label Large bold
|
|
15
|
+
+ippon-text({ variant: 'body', color: 'neutral-tertiary-inversed' }) Color Neutral Tertiary Inversed
|
|
16
|
+
+ippon-text({ variant: 'body', size: 'small', placeholder: true })
|
|
17
|
+
+ippon-text({ variant: 'body', placeholder: true })
|
|
18
|
+
+ippon-text({ variant: 'body', size: 'large', placeholder: true })
|
|
19
|
+
+ippon-text({ variant: 'label', placeholder: true })
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
mixin ippon-text(options)
|
|
2
|
+
- const { size, variant, weight, color, tag, placeholder } = options || {};
|
|
3
|
+
- const sizeClass = size ? `-${size}` : null;
|
|
4
|
+
- const variantClass = variant ? `-${variant}` : null;
|
|
5
|
+
- const weightClass = weight ? `-${weight}` : null;
|
|
6
|
+
- const colorClass = color ? `-color-${color}` : null;
|
|
7
|
+
- const placeholderClass = placeholder ? '-placeholder' : null;
|
|
8
|
+
#{tag || 'span'}.ippon-text(
|
|
9
|
+
class=[sizeClass, variantClass, weightClass, colorClass, placeholderClass]
|
|
10
|
+
)
|
|
11
|
+
if !placeholder
|
|
12
|
+
block
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@use '../../quark/typography';
|
|
2
|
+
@use '../../quark/placeholder';
|
|
3
|
+
|
|
4
|
+
@mixin ippon-title($level) {
|
|
5
|
+
$tag: h#{$level};
|
|
6
|
+
$alternative: -l#{$level};
|
|
7
|
+
#{$tag}.ippon-title,
|
|
8
|
+
.ippon-title.#{$alternative} {
|
|
9
|
+
@content;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@mixin ippon-title-placeholder($level) {
|
|
14
|
+
$tag: h#{$level};
|
|
15
|
+
$alternative: -l#{$level};
|
|
16
|
+
#{$tag}.ippon-title.-placeholder,
|
|
17
|
+
.ippon-title.#{$alternative}.-placeholder {
|
|
18
|
+
@content;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.ippon-title {
|
|
23
|
+
margin: 0;
|
|
24
|
+
|
|
25
|
+
&.-placeholder {
|
|
26
|
+
min-width: 12rem;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@include ippon-title(1) {
|
|
31
|
+
@include typography.title-1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@include ippon-title-placeholder(1) {
|
|
35
|
+
@include placeholder.placeholder(var(--ippon-typography-title-1-line-height));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@include ippon-title(2) {
|
|
39
|
+
@include typography.title-2;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@include ippon-title-placeholder(2) {
|
|
43
|
+
@include placeholder.placeholder(var(--ippon-typography-title-2-line-height));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@include ippon-title(3) {
|
|
47
|
+
@include typography.title-3;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@include ippon-title-placeholder(3) {
|
|
51
|
+
@include placeholder.placeholder(var(--ippon-typography-title-3-line-height));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@include ippon-title(4) {
|
|
55
|
+
@include typography.title-4;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@include ippon-title-placeholder(4) {
|
|
59
|
+
@include placeholder.placeholder(var(--ippon-typography-title-4-line-height));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@include ippon-title(5) {
|
|
63
|
+
@include typography.title-5;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@include ippon-title-placeholder(5) {
|
|
67
|
+
@include placeholder.placeholder(var(--ippon-typography-title-5-line-height));
|
|
68
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
include title.mixin.pug
|
|
2
|
+
|
|
3
|
+
+ippon-title({ tag: 'h1' })
|
|
4
|
+
+ippon-title({ tag: 'h2' })
|
|
5
|
+
+ippon-title({ tag: 'h3' })
|
|
6
|
+
+ippon-title({ tag: 'h4' })
|
|
7
|
+
+ippon-title({ tag: 'h5' })
|
|
8
|
+
|
|
9
|
+
+ippon-title({ tag: 'h2', level: 1 })
|
|
10
|
+
+ippon-title({ tag: 'h1', level: 2 })
|
|
11
|
+
+ippon-title({ tag: 'h5', level: 3 })
|
|
12
|
+
+ippon-title({ tag: 'h2', level: 4 })
|
|
13
|
+
+ippon-title({ tag: 'h3', level: 5 })
|
|
14
|
+
|
|
15
|
+
+ippon-title({ tag: 'h1', placeholder: true })
|
|
16
|
+
+ippon-title({ tag: 'h2', placeholder: true })
|
|
17
|
+
+ippon-title({ tag: 'h3', placeholder: true })
|
|
18
|
+
+ippon-title({ tag: 'h4', placeholder: true })
|
|
19
|
+
+ippon-title({ tag: 'h5', placeholder: true })
|
|
20
|
+
|
|
21
|
+
+ippon-title({ tag: 'h2', level: 1, placeholder: true })
|
|
22
|
+
+ippon-title({ tag: 'h1', level: 2, placeholder: true })
|
|
23
|
+
+ippon-title({ tag: 'h5', level: 3, placeholder: true })
|
|
24
|
+
+ippon-title({ tag: 'h2', level: 4, placeholder: true })
|
|
25
|
+
+ippon-title({ tag: 'h3', level: 5, placeholder: true })
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## Title
|
|
2
|
+
|
|
3
|
+
The `title` will have an associated size depending on the heading level (e.g., `h1`, `h2`, …).
|
|
4
|
+
|
|
5
|
+
Alternatives classes can be used to change the **level** using alternative classes (e.g., `-l1`, `-l2`, …).
|
|
6
|
+
|
|
7
|
+
**Placeholder (Loading State)**
|
|
8
|
+
|
|
9
|
+
The `-placeholder` alternative displays a shimmer animation, typically used during content loading.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
mixin ippon-title(options)
|
|
2
|
+
- const { tag = 'div', level, placeholder } = options || {};
|
|
3
|
+
- const titleTag = `Title ${tag}`;
|
|
4
|
+
- const titleName = level ? `${titleTag} (alternative level ${level})` : titleTag;
|
|
5
|
+
- const alternativeClass = level ? `-l${level}` : null;
|
|
6
|
+
- const placeholderClass = placeholder ? '-placeholder' : null;
|
|
7
|
+
#{tag}.ippon-title(class=[alternativeClass, placeholderClass])
|
|
8
|
+
if !placeholder
|
|
9
|
+
if block
|
|
10
|
+
block
|
|
11
|
+
else
|
|
12
|
+
| #{ titleName }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use '../../quark/typography';
|
|
2
|
+
|
|
3
|
+
@mixin ippon-title-display($level, $size) {
|
|
4
|
+
$tag: h#{$level};
|
|
5
|
+
$alternative: -#{$size};
|
|
6
|
+
#{$tag}.ippon-title-display,
|
|
7
|
+
.ippon-title-display.#{$alternative} {
|
|
8
|
+
@content;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.ippon-title-display {
|
|
13
|
+
margin: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@include ippon-title-display(1, 'large') {
|
|
17
|
+
@include typography.display-large;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@include ippon-title-display(2, 'medium') {
|
|
21
|
+
@include typography.display-medium;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@include ippon-title-display(3, 'small') {
|
|
25
|
+
@include typography.display-small;
|
|
26
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
include title-display.mixin.pug
|
|
2
|
+
|
|
3
|
+
+ippon-title-display({ tag: 'h1' })
|
|
4
|
+
+ippon-title-display({ tag: 'h2' })
|
|
5
|
+
+ippon-title-display({ tag: 'h3' })
|
|
6
|
+
|
|
7
|
+
+ippon-title-display({ tag: 'h2', size: 'large' })
|
|
8
|
+
+ippon-title-display({ tag: 'h1', size: 'medium' })
|
|
9
|
+
+ippon-title-display({ tag: 'h5', size: 'small' })
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
mixin ippon-title-display(options)
|
|
2
|
+
- const { tag = 'div', size } = options || {};
|
|
3
|
+
- const displayTag = `Title display ${tag}`;
|
|
4
|
+
- const displayName = size ? `${displayTag} (alternative ${size})` : displayTag;
|
|
5
|
+
- const alternativeClass = size ? `-${size}` : null;
|
|
6
|
+
#{tag}.ippon-title-display(class=[alternativeClass])= displayName
|
|
Binary file
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
extends /layout-documentation
|
|
2
|
+
|
|
3
|
+
block title
|
|
4
|
+
title Tikui
|
|
5
|
+
|
|
6
|
+
block content
|
|
7
|
+
.tikui-vertical-spacing.-s32
|
|
8
|
+
.tikui-vertical-spacing--line
|
|
9
|
+
h1.tikui-title-main Tikui pattern library
|
|
10
|
+
.tikui-vertical-spacing--line
|
|
11
|
+
.tikui-vertical-spacing.-s24
|
|
12
|
+
.tikui-vertical-spacing--line
|
|
13
|
+
h2.tikui-title-section Use
|
|
14
|
+
.tikui-vertical-spacing--line
|
|
15
|
+
p.tikui-paragraph Import style using #[strong <link>] tag and replace #[strong {DOMAIN}] with the current domain:
|
|
16
|
+
.tikui-vertical-spacing--line
|
|
17
|
+
p.tikui-paragraph
|
|
18
|
+
em HTML
|
|
19
|
+
.tikui-vertical-spacing--line
|
|
20
|
+
pre
|
|
21
|
+
code.language-html
|
|
22
|
+
| #{ '<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />' }
|
|
23
|
+
|
|
|
24
|
+
| #{ '<link href="{DOMAIN}/fonts/open-sans/400.css" rel="stylesheet" />' }
|
|
25
|
+
| #{ '<link href="{DOMAIN}/fonts/open-sans/600.css" rel="stylesheet" />' }
|
|
26
|
+
| #{ '<link href="{DOMAIN}/fonts/open-sans/700.css" rel="stylesheet" />' }
|
|
27
|
+
| #{ '<link href="{DOMAIN}/fonts/saira-extra-condensed/700.css" rel="stylesheet" />' }
|
|
28
|
+
| #{ '<link href="{DOMAIN}/icons/ionicons.css" rel="stylesheet" />' }
|
|
29
|
+
| #{ '<link rel="stylesheet" href="{DOMAIN}/tikui.css" />' }
|
|
30
|
+
.tikui-vertical-spacing--line
|
|
31
|
+
p.tikui-paragraph
|
|
32
|
+
em Pug
|
|
33
|
+
.tikui-vertical-spacing--line
|
|
34
|
+
pre
|
|
35
|
+
code.language-pug.
|
|
36
|
+
meta(name='viewport' content='width=device-width, initial-scale=1, shrink-to-fit=no')
|
|
37
|
+
|
|
38
|
+
link(href='{DOMAIN}/fonts/open-sans/400.css' rel='stylesheet')
|
|
39
|
+
link(href='{DOMAIN}/fonts/open-sans/600.css' rel='stylesheet')
|
|
40
|
+
link(href='{DOMAIN}/fonts/open-sans/700.css' rel='stylesheet')
|
|
41
|
+
link(href='{DOMAIN}/fonts/saira-extra-condensed/700.css' rel='stylesheet')
|
|
42
|
+
link(href='{DOMAIN}/icons/ionicons.css' rel='stylesheet')
|
|
43
|
+
link(rel='stylesheet' href='{DOMAIN}/tikui.css')
|
|
44
|
+
.tikui-vertical-spacing--line
|
|
45
|
+
h2.tikui-title-section Documentation
|
|
46
|
+
.tikui-vertical-spacing--line
|
|
47
|
+
p.tikui-paragraph The Style have an #[a.tikui-link(href='http://atomicdesign.bradfrost.com', target='_blank') Atomic Design] structure.
|
|
48
|
+
.tikui-vertical-spacing--line
|
|
49
|
+
ul.tikui-list
|
|
50
|
+
li
|
|
51
|
+
a.tikui-link(href='[[TIKUI_BASEPATH]]token/token.html') Tokens
|
|
52
|
+
li
|
|
53
|
+
a.tikui-link(href='[[TIKUI_BASEPATH]]atom/atom.html') Atoms
|
|
54
|
+
li
|
|
55
|
+
a.tikui-link(href='[[TIKUI_BASEPATH]]molecule/molecule.html') Molecules
|
|
56
|
+
li
|
|
57
|
+
a.tikui-link(href='[[TIKUI_BASEPATH]]organism/organism.html') Organisms
|
|
58
|
+
li
|
|
59
|
+
a.tikui-link(href='[[TIKUI_BASEPATH]]template/template.html') Templates
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
extends /documentation/layout-atomic
|
|
2
|
+
|
|
3
|
+
include /documentation/mixin
|
|
4
|
+
|
|
5
|
+
block header
|
|
6
|
+
block vars
|
|
7
|
+
- let active = '';
|
|
8
|
+
- const isActive = (current) => current === active;
|
|
9
|
+
+tikui-navbar('[[TIKUI_BASEPATH]]index.html', 'Tikui')
|
|
10
|
+
+tikui-navbar-item('[[TIKUI_BASEPATH]]token/token.html', 'Tokens', isActive('token'))
|
|
11
|
+
+tikui-navbar-item('[[TIKUI_BASEPATH]]atom/atom.html', 'Atoms', isActive('atom'))
|
|
12
|
+
+tikui-navbar-item('[[TIKUI_BASEPATH]]molecule/molecule.html', 'Molecules', isActive('molecule'))
|
|
13
|
+
+tikui-navbar-item('[[TIKUI_BASEPATH]]organism/organism.html', 'Organisms', isActive('organism'))
|
|
14
|
+
+tikui-navbar-item('[[TIKUI_BASEPATH]]template/template.html', 'Templates', isActive('template'))
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
doctype html
|
|
2
|
+
html
|
|
3
|
+
head
|
|
4
|
+
meta(charset='utf-8')
|
|
5
|
+
meta(name='viewport', content='width=device-width, initial-scale=1, shrink-to-fit=no')
|
|
6
|
+
block title
|
|
7
|
+
title Tikui
|
|
8
|
+
link(href='[[TIKUI_BASEPATH]]fonts/open-sans/400.css', rel='stylesheet')
|
|
9
|
+
link(href='[[TIKUI_BASEPATH]]fonts/open-sans/600.css', rel='stylesheet')
|
|
10
|
+
link(href='[[TIKUI_BASEPATH]]fonts/open-sans/700.css', rel='stylesheet')
|
|
11
|
+
link(href='[[TIKUI_BASEPATH]]fonts/saira-extra-condensed/700.css', rel='stylesheet')
|
|
12
|
+
link(href='[[TIKUI_BASEPATH]]icons/ionicons.css', rel='stylesheet')
|
|
13
|
+
link(href='[[TIKUI_BASEPATH]]tikui.css', rel='stylesheet')
|
|
14
|
+
link(href='[[TIKUI_BASEPATH]]doc.css', rel='stylesheet')
|
|
15
|
+
body
|
|
16
|
+
block body
|
|
17
|
+
p Please include a body here.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.ippon-import-file {
|
|
2
|
+
--_border-width: 2px;
|
|
3
|
+
--_padding-inline: calc(var(--ippon-size-32) - var(--_border-width));
|
|
4
|
+
--_icon-background-color: var(--ippon-color-neutral-surface-secondary);
|
|
5
|
+
--_icon-color: var(--ippon-color-neutral-text-icon-on-secondary);
|
|
6
|
+
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
border: var(--_border-width) dashed var(--ippon-color-neutral-border);
|
|
13
|
+
border-radius: var(--ippon-radius-m);
|
|
14
|
+
padding: var(--_padding-inline);
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
|
|
17
|
+
&--input {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&--icon {
|
|
22
|
+
border-radius: var(--ippon-radius-pill);
|
|
23
|
+
background-color: var(--_icon-background-color);
|
|
24
|
+
padding: var(--ippon-size-12);
|
|
25
|
+
line-height: 0;
|
|
26
|
+
color: var(--_icon-color);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:hover,
|
|
30
|
+
&.-dragover {
|
|
31
|
+
--_border-width: 1px;
|
|
32
|
+
--_icon-background-color: var(--ippon-color-information-2-surface-primary);
|
|
33
|
+
--_icon-color: var(--ippon-color-information-2-text-icon-on-primary);
|
|
34
|
+
|
|
35
|
+
border: var(--_border-width) dashed var(--ippon-color-information-2-border);
|
|
36
|
+
background-color: var(--ippon-color-information-2-surface-secondary);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
## Import File
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
include /atom/icon/icon.mixin.pug
|
|
2
|
+
include /atom/text/text.mixin.pug
|
|
3
|
+
include /organism/v-space/v-space.mixin.pug
|
|
4
|
+
|
|
5
|
+
mixin ippon-import-file(options)
|
|
6
|
+
- const { dragover } = options || {};
|
|
7
|
+
- const dragoverClass = dragover ? '-dragover' : null;
|
|
8
|
+
label.ippon-import-file(class=dragoverClass)
|
|
9
|
+
+ippon-v-space({ gap: 8, align: 'center' })
|
|
10
|
+
.ippon-import-file--icon
|
|
11
|
+
+ippon-icon({ name: 'cloud-upload', size: 24 })
|
|
12
|
+
+ippon-v-space({ gap: 4, align: 'center' })
|
|
13
|
+
+ippon-text({ variant: 'body', weight: 'bold' }) Drag and drop your files here
|
|
14
|
+
+ippon-text({ variant: 'body', weight: 'small', color: 'neutral-tertiary-inversed' }) Or click to browse
|
|
15
|
+
input.ippon-import-file--input(type='file')
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
extends /layout-documentation
|
|
2
|
+
|
|
3
|
+
block append vars
|
|
4
|
+
- active = 'molecule';
|
|
5
|
+
|
|
6
|
+
block title
|
|
7
|
+
title Tikui - Molecules
|
|
8
|
+
|
|
9
|
+
block content
|
|
10
|
+
.tikui-vertical-spacing.-s32
|
|
11
|
+
.tikui-vertical-spacing--line
|
|
12
|
+
h1#molecules.tikui-title-main Molecules
|
|
13
|
+
.tikui-vertical-spacing--line
|
|
14
|
+
include /documentation/atomic-design/quote/molecule
|
|
15
|
+
.tikui-vertical-spacing--line
|
|
16
|
+
include:componentDoc(height=60) tabs/tabs.md
|
|
17
|
+
.tikui-vertical-spacing--line
|
|
18
|
+
include:componentDoc(height=370) import-file/import-file.md
|
|
19
|
+
.tikui-vertical-spacing--line
|
|
20
|
+
include:componentDoc(height=280) toggle/toggle.md
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
include tabs.mixin.pug
|
|
2
|
+
include /atom/tab/tab.mixin.pug
|
|
3
|
+
|
|
4
|
+
+ippon-tabs({ id: 'panel-id' })
|
|
5
|
+
+ippon-tab({ id: 'tab-1', controls: 'panel-id' }) Tab 1
|
|
6
|
+
+ippon-tab({ id: 'tab-2', controls: 'panel-id', selected: true }) Tab 2
|
|
7
|
+
+ippon-tab({ id: 'tab-3', controls: 'panel-id', href: '#tab3' }) Tab 3
|
|
8
|
+
+ippon-tab({ id: 'tab-4', controls: 'panel-id' }) Tab 4
|
|
9
|
+
+ippon-tab({ id: 'tab-5', controls: 'panel-id' }) Tab 5
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
## Tabs
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.ippon-toggle {
|
|
2
|
+
--_padding: var(--ippon-size-10);
|
|
3
|
+
--_animation-duration: 200ms;
|
|
4
|
+
--_animation-easing: ease-in-out;
|
|
5
|
+
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
border: 1px solid var(--ippon-color-neutral-border);
|
|
8
|
+
border-radius: var(--ippon-radius-l);
|
|
9
|
+
background-color: var(--ippon-color-neutral-surface-primary);
|
|
10
|
+
color: var(--ippon-color-neutral-text-icon-on-primary);
|
|
11
|
+
|
|
12
|
+
&--header,
|
|
13
|
+
&--button {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
align-items: center;
|
|
18
|
+
text-align: left;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&.-open &--icon {
|
|
22
|
+
rotate: 90deg;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&--button {
|
|
26
|
+
flex: 1;
|
|
27
|
+
gap: var(--_padding);
|
|
28
|
+
align-self: stretch;
|
|
29
|
+
border: none;
|
|
30
|
+
background: none;
|
|
31
|
+
padding: var(--_padding);
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&--icon {
|
|
36
|
+
transition: rotate var(--_animation-duration) var(--_animation-easing);
|
|
37
|
+
line-height: 1;
|
|
38
|
+
font-size: var(--ippon-size-16);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&--title {
|
|
42
|
+
flex: 1;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&--actions {
|
|
46
|
+
display: flex;
|
|
47
|
+
gap: var(--_padding);
|
|
48
|
+
align-items: center;
|
|
49
|
+
padding: var(--_padding) var(--_padding) var(--_padding) 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&--body {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
transition: height var(--_animation-duration) var(--_animation-easing);
|
|
56
|
+
height: 0;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&--content {
|
|
61
|
+
border-top: 1px solid var(--ippon-color-neutral-border);
|
|
62
|
+
padding: var(--ippon-size-12);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&.-open &--body {
|
|
66
|
+
height: calc-size(max-content, size);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
include /atom/button/button.mixin.pug
|
|
2
|
+
include /atom/icon/icon.mixin.pug
|
|
3
|
+
include /atom/text/text.mixin.pug
|
|
4
|
+
include /organism/h-space/h-space.mixin.pug
|
|
5
|
+
|
|
6
|
+
include toggle.mixin.pug
|
|
7
|
+
|
|
8
|
+
mixin ippon-toggle-example(options)
|
|
9
|
+
- const { id, open } = options || {};
|
|
10
|
+
- const label = 'Toggle Title';
|
|
11
|
+
+ippon-toggle(options)
|
|
12
|
+
+ippon-toggle--header
|
|
13
|
+
+ippon-toggle--button({ id, open, label })
|
|
14
|
+
+ippon-h-space({ gap: 10, align: 'middle' })
|
|
15
|
+
+ippon-icon({ name: 'folder', variant: 'outline', size: 16, color: 'warning-primary' })
|
|
16
|
+
+ippon-text({ variant: 'body', weight: 'bold' })= label
|
|
17
|
+
+ippon-text({ variant: 'body', weight: 'small', color: 'neutral-tertiary-inversed' }) (3 elements)
|
|
18
|
+
+ippon-toggle--actions
|
|
19
|
+
+ippon-button({ color: 'neutral', variant: 'outline' }) Action
|
|
20
|
+
+ippon-toggle--body({ labelledBy: id })
|
|
21
|
+
+ippon-toggle--content First
|
|
22
|
+
+ippon-toggle--content Second
|
|
23
|
+
+ippon-toggle--content Third
|
|
24
|
+
|
|
25
|
+
+ippon-toggle-example({ id: 'first-toggle' })
|
|
26
|
+
+ippon-toggle-example({ id: 'second-toggle', open: true })
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
## Toggle
|