@kickstartds/ds-agency-premium 1.0.1
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 +96 -0
- package/dist/ButtonProps-03ff6d21.d.ts +41 -0
- package/dist/CtaProps-93230a76.d.ts +113 -0
- package/dist/FaqProps-ad618cd5.d.ts +35 -0
- package/dist/FeaturesProps-79dea880.d.ts +284 -0
- package/dist/GalleryProps-76e7de44.d.ts +331 -0
- package/dist/HeadlineProps-d413a2cc.d.ts +48 -0
- package/dist/HeroProps-cf82a16d.d.ts +104 -0
- package/dist/ImageStoryProps-03ff6d21.d.ts +70 -0
- package/dist/ImageTextProps-9286cca4.d.ts +38 -0
- package/dist/LogosProps-8af8b3c7.d.ts +929 -0
- package/dist/MosaicProps-aacb9422.d.ts +84 -0
- package/dist/SliderProps-69b2f1d7.d.ts +43 -0
- package/dist/SplitProps-89ef39c4.d.ts +9 -0
- package/dist/StatsProps-afa48599.d.ts +41 -0
- package/dist/TeaserCardProps-b52479e5.d.ts +49 -0
- package/dist/TestimonialsProps-d27ae4b4.d.ts +54 -0
- package/dist/TextProps-a23170d2.d.ts +31 -0
- package/dist/VideoCurtainProps-6c625a69.d.ts +82 -0
- package/dist/components/blog-aside/blog-aside.css +9 -0
- package/dist/components/blog-aside/blog-aside.schema.dereffed.json +130 -0
- package/dist/components/blog-aside/blog-aside.schema.json +99 -0
- package/dist/components/blog-aside/index.d.ts +76 -0
- package/dist/components/blog-aside/index.js +55 -0
- package/dist/components/blog-head/blog-head.css +3 -0
- package/dist/components/blog-head/blog-head.schema.dereffed.json +54 -0
- package/dist/components/blog-head/blog-head.schema.json +40 -0
- package/dist/components/blog-head/index.d.ts +34 -0
- package/dist/components/blog-head/index.js +11 -0
- package/dist/components/blog-teaser/blog-teaser.css +58 -0
- package/dist/components/blog-teaser/blog-teaser.schema.dereffed.json +135 -0
- package/dist/components/blog-teaser/blog-teaser.schema.json +102 -0
- package/dist/components/blog-teaser/index.d.ts +81 -0
- package/dist/components/blog-teaser/index.js +37 -0
- package/dist/components/button/button.css +67 -0
- package/dist/components/button/button.schema.dereffed.json +63 -0
- package/dist/components/button/button.schema.json +48 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/index.js +18 -0
- package/dist/components/button-group/button-group.schema.dereffed.json +115 -0
- package/dist/components/button-group/button-group.schema.json +27 -0
- package/dist/components/button-group/index.d.ts +40 -0
- package/dist/components/button-group/index.js +30 -0
- package/dist/components/component-teaser/component-teaser.schema.dereffed.json +43 -0
- package/dist/components/component-teaser/component-teaser.schema.json +40 -0
- package/dist/components/cta/cta.css +100 -0
- package/dist/components/cta/cta.schema.dereffed.json +158 -0
- package/dist/components/cta/cta.schema.json +127 -0
- package/dist/components/cta/index.d.ts +4 -0
- package/dist/components/cta/index.js +40 -0
- package/dist/components/faq/faq.css +17 -0
- package/dist/components/faq/faq.schema.dereffed.json +48 -0
- package/dist/components/faq/faq.schema.json +36 -0
- package/dist/components/faq/index.d.ts +4 -0
- package/dist/components/faq/index.js +9 -0
- package/dist/components/feature/index.d.ts +49 -0
- package/dist/components/feature/index.js +23 -0
- package/dist/components/features/features.css +115 -0
- package/dist/components/features/features.schema.dereffed.json +121 -0
- package/dist/components/features/features.schema.json +93 -0
- package/dist/components/features/index.d.ts +4 -0
- package/dist/components/features/index.js +32 -0
- package/dist/components/footer/footer.css +53 -0
- package/dist/components/footer/footer.schema.dereffed.json +178 -0
- package/dist/components/footer/footer.schema.json +47 -0
- package/dist/components/footer/index.d.ts +22 -0
- package/dist/components/footer/index.js +11 -0
- package/dist/components/gallery/gallery.css +50 -0
- package/dist/components/gallery/gallery.schema.dereffed.json +84 -0
- package/dist/components/gallery/gallery.schema.json +62 -0
- package/dist/components/gallery/index.d.ts +4 -0
- package/dist/components/gallery/index.js +35 -0
- package/dist/components/header/header.css +78 -0
- package/dist/components/header/header.schema.dereffed.json +188 -0
- package/dist/components/header/header.schema.json +25 -0
- package/dist/components/header/index.d.ts +26 -0
- package/dist/components/header/index.js +16 -0
- package/dist/components/headline/headline.css +78 -0
- package/dist/components/headline/headline.schema.dereffed.json +86 -0
- package/dist/components/headline/headline.schema.json +60 -0
- package/dist/components/headline/index.d.ts +11 -0
- package/dist/components/headline/index.js +18 -0
- package/dist/components/hero/hero.css +95 -0
- package/dist/components/hero/hero.schema.dereffed.json +166 -0
- package/dist/components/hero/hero.schema.json +79 -0
- package/dist/components/hero/index.d.ts +4 -0
- package/dist/components/hero/index.js +55 -0
- package/dist/components/image/image.css +12 -0
- package/dist/components/image/image.schema.dereffed.json +105 -0
- package/dist/components/image/image.schema.json +95 -0
- package/dist/components/image/index.d.ts +87 -0
- package/dist/components/image/index.js +11 -0
- package/dist/components/image-story/image-story.css +26 -0
- package/dist/components/image-story/image-story.schema.dereffed.json +165 -0
- package/dist/components/image-story/image-story.schema.json +81 -0
- package/dist/components/image-story/index.d.ts +4 -0
- package/dist/components/image-story/index.js +39 -0
- package/dist/components/image-text/image-text.css +4 -0
- package/dist/components/image-text/image-text.schema.dereffed.json +68 -0
- package/dist/components/image-text/image-text.schema.json +46 -0
- package/dist/components/image-text/index.d.ts +5 -0
- package/dist/components/image-text/index.js +20 -0
- package/dist/components/logos/index.d.ts +4 -0
- package/dist/components/logos/index.js +12 -0
- package/dist/components/logos/logos.css +91 -0
- package/dist/components/logos/logos.schema.dereffed.json +131 -0
- package/dist/components/logos/logos.schema.json +106 -0
- package/dist/components/mosaic/index.d.ts +4 -0
- package/dist/components/mosaic/index.js +33 -0
- package/dist/components/mosaic/mosaic.css +35 -0
- package/dist/components/mosaic/mosaic.schema.dereffed.json +122 -0
- package/dist/components/mosaic/mosaic.schema.json +86 -0
- package/dist/components/nav-main/index.d.ts +26 -0
- package/dist/components/nav-main/index.js +17 -0
- package/dist/components/nav-main/js/NavToggle.client.d.ts +16 -0
- package/dist/components/nav-main/js/NavToggle.client.js +57 -0
- package/dist/components/nav-main/js/body.client.d.ts +5 -0
- package/dist/components/nav-main/js/body.client.js +41 -0
- package/dist/components/nav-main/js/navMainEvents.client.d.ts +5 -0
- package/dist/components/nav-main/js/navMainEvents.client.js +13 -0
- package/dist/components/nav-main/nav-main.css +170 -0
- package/dist/components/nav-main/nav-main.schema.dereffed.json +182 -0
- package/dist/components/nav-main/nav-main.schema.json +53 -0
- package/dist/components/nav-main/nav-toggle.css +85 -0
- package/dist/components/page/page.schema.dereffed.json +1945 -0
- package/dist/components/page/page.schema.json +58 -0
- package/dist/components/page-intro/index.d.ts +17 -0
- package/dist/components/page-intro/index.js +18 -0
- package/dist/components/page-intro/page-intro.css +8 -0
- package/dist/components/page-intro/page-intro.schema.dereffed.json +30 -0
- package/dist/components/page-intro/page-intro.schema.json +26 -0
- package/dist/components/page-wrapper/index.d.ts +2 -0
- package/dist/components/page-wrapper/index.js +28 -0
- package/dist/components/page-wrapper/tokens.css +1556 -0
- package/dist/components/picture/picture.schema.json +88 -0
- package/dist/components/providers/index.d.ts +6 -0
- package/dist/components/providers/index.js +38 -0
- package/dist/components/raw-page-wrapper/index.d.ts +3 -0
- package/dist/components/raw-page-wrapper/index.js +492 -0
- package/dist/components/section/index.d.ts +147 -0
- package/dist/components/section/index.js +48 -0
- package/dist/components/section/js/Section.client.d.ts +2 -0
- package/dist/components/section/js/Section.client.js +26 -0
- package/dist/components/section/js/spotlight.client.d.ts +2 -0
- package/dist/components/section/js/spotlight.client.js +14 -0
- package/dist/components/section/section.css +110 -0
- package/dist/components/section/section.schema.dereffed.json +1875 -0
- package/dist/components/section/section.schema.json +222 -0
- package/dist/components/slider/index.d.ts +4 -0
- package/dist/components/slider/index.js +7 -0
- package/dist/components/slider/slider.css +24 -0
- package/dist/components/slider/slider.schema.dereffed.json +54 -0
- package/dist/components/slider/slider.schema.json +30 -0
- package/dist/components/split/index.d.ts +4 -0
- package/dist/components/split/index.js +7 -0
- package/dist/components/split/split.css +24 -0
- package/dist/components/split/split.schema.dereffed.json +20 -0
- package/dist/components/split/split.schema.json +13 -0
- package/dist/components/stats/index.d.ts +4 -0
- package/dist/components/stats/index.js +11 -0
- package/dist/components/stats/stats.css +49 -0
- package/dist/components/stats/stats.schema.dereffed.json +71 -0
- package/dist/components/stats/stats.schema.json +49 -0
- package/dist/components/teaser-card/index.d.ts +6 -0
- package/dist/components/teaser-card/index.js +25 -0
- package/dist/components/teaser-card/teaser-card.css +98 -0
- package/dist/components/teaser-card/teaser-card.schema.dereffed.json +69 -0
- package/dist/components/teaser-card/teaser-card.schema.json +58 -0
- package/dist/components/teaser-component/component-teaser.css +33 -0
- package/dist/components/teaser-component/index.d.ts +41 -0
- package/dist/components/teaser-component/index.js +18 -0
- package/dist/components/testimonials/index.d.ts +9 -0
- package/dist/components/testimonials/index.js +22 -0
- package/dist/components/testimonials/testimonials.css +63 -0
- package/dist/components/testimonials/testimonials.schema.dereffed.json +93 -0
- package/dist/components/testimonials/testimonials.schema.json +71 -0
- package/dist/components/text/index.d.ts +4 -0
- package/dist/components/text/index.js +13 -0
- package/dist/components/text/text.css +15 -0
- package/dist/components/text/text.schema.dereffed.json +50 -0
- package/dist/components/text/text.schema.json +39 -0
- package/dist/components/video-curtain/index.d.ts +4 -0
- package/dist/components/video-curtain/index.js +47 -0
- package/dist/components/video-curtain/video-curtain.css +51 -0
- package/dist/components/video-curtain/video-curtain.schema.dereffed.json +123 -0
- package/dist/components/video-curtain/video-curtain.schema.json +67 -0
- package/dist/global-35f78d6d.js +1 -0
- package/dist/global.client.d.ts +2 -0
- package/dist/global.client.js +8 -0
- package/dist/global.css +564 -0
- package/dist/static/.gitkeep +0 -0
- package/dist/static/favicon/.gitkeep +0 -0
- package/dist/static/favicon/android-chrome-192x192.png +0 -0
- package/dist/static/favicon/android-chrome-512x512.png +0 -0
- package/dist/static/favicon/apple-touch-icon.png +0 -0
- package/dist/static/favicon/browserconfig.xml +9 -0
- package/dist/static/favicon/favicon-16x16.png +0 -0
- package/dist/static/favicon/favicon-192-192.png +20 -0
- package/dist/static/favicon/favicon-32x32.png +0 -0
- package/dist/static/favicon/favicon.ico +0 -0
- package/dist/static/favicon/mstile-144x144.png +0 -0
- package/dist/static/favicon/mstile-150x150.png +0 -0
- package/dist/static/favicon/mstile-310x150.png +0 -0
- package/dist/static/favicon/mstile-310x310.png +0 -0
- package/dist/static/favicon/mstile-70x70.png +0 -0
- package/dist/static/favicon/safari-pinned-tab.svg +30 -0
- package/dist/static/favicon/site.webmanifest +19 -0
- package/dist/static/fonts/dsa/Fredoka-Bold.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Bold.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-Light.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Light.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-Medium.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Medium.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-Regular.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Regular.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-SemiBold.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-SemiBold.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-300.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-300.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-600.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-600.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-800.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-800.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-Regular.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-Regular.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-18pt.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-display.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-text-medium.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-text.woff2 +0 -0
- package/dist/static/fonts/lughausen/novelpro-regular.woff +0 -0
- package/dist/static/fonts/lughausen/novelsanspro-bold.woff +0 -0
- package/dist/static/fonts/lughausen/novelsanspro-regular.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-bold-woff-data.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-extrabold-woff-data.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-medium-woff-data.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-thin-woff-data.woff +0 -0
- package/dist/static/img/02.jpg +0 -0
- package/dist/static/img/angled-image.png +0 -0
- package/dist/static/img/bg_dot-carpet-blue.svg +346 -0
- package/dist/static/img/close-up-young-business-team-working.png +0 -0
- package/dist/static/img/colleagues-work-office-using-computers-looking-aside.png +0 -0
- package/dist/static/img/colored-square.png +0 -0
- package/dist/static/img/contact-person.png +0 -0
- package/dist/static/img/full-shot-different-people-working-together.png +0 -0
- package/dist/static/img/grid-bg.svg +19 -0
- package/dist/static/img/logos/castaway.svg +111 -0
- package/dist/static/img/logos/logoipsum-212.svg +12 -0
- package/dist/static/img/logos/logoipsum-217.svg +4 -0
- package/dist/static/img/logos/logoipsum-239.svg +16 -0
- package/dist/static/img/logos/logoipsum-244.svg +19 -0
- package/dist/static/img/logos/logoipsum-250.svg +21 -0
- package/dist/static/img/logos/logoipsum-286.svg +20 -0
- package/dist/static/img/low-angle-tall-building-with-many-windows_23-2148230392.png +0 -0
- package/dist/static/img/mosaic-1.png +0 -0
- package/dist/static/img/mosaic-2.png +0 -0
- package/dist/static/img/mosaic-2_1.svg +34 -0
- package/dist/static/img/mosaic-2_2.svg +25 -0
- package/dist/static/img/mosaic-2_3.svg +32 -0
- package/dist/static/img/mosaic-3.png +0 -0
- package/dist/static/img/office-divider-image.png +0 -0
- package/dist/static/img/offset-image.png +0 -0
- package/dist/static/img/people/author-alex.png +0 -0
- package/dist/static/img/people/author-emily.png +0 -0
- package/dist/static/img/people/author-john.png +0 -0
- package/dist/static/img/people-brainstorming-work-meeting.png +0 -0
- package/dist/static/img/responsive_image-1680.png +0 -0
- package/dist/static/img/responsive_image-420.png +0 -0
- package/dist/static/img/responsive_image-980.png +0 -0
- package/dist/static/img/showcases/audio_bg.svg +10 -0
- package/dist/static/img/showcases/comp_audio01.jpg +0 -0
- package/dist/static/img/showcases/comp_audio04.png +0 -0
- package/dist/static/img/showcases/comp_eco01.jpg +0 -0
- package/dist/static/img/showcases/comp_eco01.png +0 -0
- package/dist/static/img/showcases/comp_eco02.png +0 -0
- package/dist/static/img/showcases/comp_eco03.png +0 -0
- package/dist/static/img/showcases/comp_eco04.jpg +0 -0
- package/dist/static/img/showcases/comp_eco04.png +0 -0
- package/dist/static/img/showcases/comp_tfe01.jpg +0 -0
- package/dist/static/img/showcases/eco_bg.png +0 -0
- package/dist/static/img/showcases/preview_audio.png +0 -0
- package/dist/static/img/showcases/preview_eco.png +0 -0
- package/dist/static/img/showcases/preview_tfe.png +0 -0
- package/dist/static/img/showcases/tfe_bg.svg +48 -0
- package/dist/static/img/top-view-desk-with-keyboard-drawing-pad.png +0 -0
- package/dist/static/img/videos/handshake-bw.mp4 +0 -0
- package/dist/static/img/videos/video-720.mp4 +0 -0
- package/dist/static/img/videos/video-agency.mp4 +0 -0
- package/dist/static/img/view-modern-office.jpg +0 -0
- package/dist/static/logo-google.svg +1 -0
- package/dist/static/logo-lughausen.svg +27 -0
- package/dist/static/logo-telekom.svg +8 -0
- package/dist/static/logo.svg +26 -0
- package/dist/static/tokens-google.css +1553 -0
- package/dist/static/tokens-lughausen.css +1549 -0
- package/dist/static/tokens-telekom.css +1549 -0
- package/dist/static/tokens.css +1554 -0
- package/dist/tokens/IconSprite.js +467 -0
- package/dist/tokens/icon-sprite.html +37 -0
- package/dist/tokens/tokens.css +1554 -0
- package/dist/tokens/tokens.js +652 -0
- package/package.json +138 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
.l-container--teaser-card {
|
|
2
|
+
/* stylelint-disable-next-line property-no-unknown */
|
|
3
|
+
container-name: teaser-card;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.c-teaser.c-teaser-card {
|
|
7
|
+
--g-topic--font: var(--ks-font-display-l);
|
|
8
|
+
--c-rich-text--font: var(--ks-font-copy-m);
|
|
9
|
+
--c-teaser--padding: var(--ks-spacing-inset-l);
|
|
10
|
+
--c-teaser--background: var(--ks-color-fg-alpha-9);
|
|
11
|
+
--c-teaser--color: var(--ks-color-fg-to-bg-3);
|
|
12
|
+
--c-teaser--border: 1px solid var(--ks-color-fg-alpha-8);
|
|
13
|
+
--c-teaser--border-radius: var(--ks-border-radius-card);
|
|
14
|
+
--c-teaser--shadow-hover: 0 1px 11px var(--ks-color-fg-alpha-6);
|
|
15
|
+
}
|
|
16
|
+
@media (min-width: 48rem) {
|
|
17
|
+
.c-teaser.c-teaser-card {
|
|
18
|
+
--g-topic--font: var(--ks-font-display-s);
|
|
19
|
+
--c-rich-text--font: var(--ks-font-copy-s);
|
|
20
|
+
--c-teaser--padding: var(--ks-spacing-inset-s);
|
|
21
|
+
}
|
|
22
|
+
@container teaser-card (min-width: 300px) {
|
|
23
|
+
.c-teaser.c-teaser-card {
|
|
24
|
+
--c-rich-text--font: var(--ks-font-copy-m);
|
|
25
|
+
--g-topic--font: var(--ks-font-display-m);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
@container teaser-card (min-width: 820px) {
|
|
29
|
+
.c-teaser.c-teaser-card {
|
|
30
|
+
--g-topic--font: var(--ks-font-display-l);
|
|
31
|
+
--c-rich-text--font: var(--ks-font-copy-l);
|
|
32
|
+
--c-teaser--padding: var(--ks-spacing-inset-l);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.l-container--teaser-card {
|
|
38
|
+
/* stylelint-disable-next-line property-no-unknown */
|
|
39
|
+
container-name: teaser-card;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.l-container--teaser-card {
|
|
43
|
+
display: flex;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.c-teaser.c-teaser-card {
|
|
47
|
+
position: relative;
|
|
48
|
+
overflow: visible;
|
|
49
|
+
}
|
|
50
|
+
.c-teaser.c-teaser-card > :first-child:not(.c-teaser__body) {
|
|
51
|
+
overflow: hidden;
|
|
52
|
+
border-radius: var(--c-teaser--border-radius) var(--c-teaser--border-radius) 0 0;
|
|
53
|
+
}
|
|
54
|
+
.c-teaser.c-teaser-card img {
|
|
55
|
+
object-fit: cover;
|
|
56
|
+
}
|
|
57
|
+
.c-teaser.c-teaser-card--wide img {
|
|
58
|
+
aspect-ratio: 4/3;
|
|
59
|
+
}
|
|
60
|
+
.c-teaser.c-teaser-card--landscape img {
|
|
61
|
+
aspect-ratio: 16/9;
|
|
62
|
+
}
|
|
63
|
+
.c-teaser.c-teaser-card--square img {
|
|
64
|
+
aspect-ratio: 1/1;
|
|
65
|
+
}
|
|
66
|
+
@container teaser-card (min-width: 640px) {
|
|
67
|
+
.c-teaser.c-teaser-card--unset img {
|
|
68
|
+
height: 100%;
|
|
69
|
+
}
|
|
70
|
+
.c-teaser.c-teaser-card--row {
|
|
71
|
+
flex-direction: row;
|
|
72
|
+
}
|
|
73
|
+
.c-teaser.c-teaser-card--row .c-teaser__body {
|
|
74
|
+
justify-content: center;
|
|
75
|
+
flex-basis: 50%;
|
|
76
|
+
}
|
|
77
|
+
.c-teaser.c-teaser-card--row .c-teaser__body .c-teaser__text {
|
|
78
|
+
flex: 0;
|
|
79
|
+
}
|
|
80
|
+
.c-teaser.c-teaser-card--row > :first-child:not(.c-teaser__body) {
|
|
81
|
+
flex: 50%;
|
|
82
|
+
border-radius: var(--c-teaser--border-radius) 0 0 var(--c-teaser--border-radius);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
.c-teaser.c-teaser-card--label .c-teaser__label {
|
|
86
|
+
border-radius: var(--ks-border-radius-pill);
|
|
87
|
+
pointer-events: initial;
|
|
88
|
+
padding: 0.5em 1em;
|
|
89
|
+
transform: translate(0.5em, -50%);
|
|
90
|
+
font: var(--ks-font-interface-m);
|
|
91
|
+
text-align: center;
|
|
92
|
+
font-weight: var(--ks-font-weight-semi-bold);
|
|
93
|
+
color: var(--ks-color-fg-base);
|
|
94
|
+
position: absolute;
|
|
95
|
+
background: var(--ks-color-primary-inverted);
|
|
96
|
+
top: 0;
|
|
97
|
+
right: 0;
|
|
98
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/teaser-card.schema.json",
|
|
4
|
+
"title": "Teaser Card",
|
|
5
|
+
"description": "Component used to tease content",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"headline": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"title": "Headline",
|
|
11
|
+
"description": "Headline for the teaser card",
|
|
12
|
+
"format": "markdown"
|
|
13
|
+
},
|
|
14
|
+
"text": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"title": "Text",
|
|
17
|
+
"description": "Body text for the teaser card",
|
|
18
|
+
"format": "markdown"
|
|
19
|
+
},
|
|
20
|
+
"label": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"title": "Label",
|
|
23
|
+
"description": "Label for the Teaser Card"
|
|
24
|
+
},
|
|
25
|
+
"layout": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": [
|
|
28
|
+
"stack",
|
|
29
|
+
"row"
|
|
30
|
+
],
|
|
31
|
+
"description": "Layout for the Teaser Card",
|
|
32
|
+
"default": "stack"
|
|
33
|
+
},
|
|
34
|
+
"target": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"title": "Target",
|
|
37
|
+
"description": "Target that should be linked",
|
|
38
|
+
"format": "uri"
|
|
39
|
+
},
|
|
40
|
+
"displayButton": {
|
|
41
|
+
"type": "boolean",
|
|
42
|
+
"title": "Display Button",
|
|
43
|
+
"description": "Toggle wether you want the card to have a visible button or not",
|
|
44
|
+
"default": true
|
|
45
|
+
},
|
|
46
|
+
"image": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"title": "Image",
|
|
49
|
+
"description": "Image to display as cover",
|
|
50
|
+
"format": "uri"
|
|
51
|
+
},
|
|
52
|
+
"imageRatio": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": [
|
|
55
|
+
"wide",
|
|
56
|
+
"landscape",
|
|
57
|
+
"square",
|
|
58
|
+
"unset"
|
|
59
|
+
],
|
|
60
|
+
"description": "Aspect ratio of the image",
|
|
61
|
+
"default": "wide"
|
|
62
|
+
},
|
|
63
|
+
"type": {
|
|
64
|
+
"const": "teaser-card"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": false,
|
|
68
|
+
"required": []
|
|
69
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/teaser-card.schema.json",
|
|
4
|
+
"title": "Teaser Card",
|
|
5
|
+
"description": "Component used to tease content",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"headline": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"title": "Headline",
|
|
11
|
+
"description": "Headline for the teaser card",
|
|
12
|
+
"format": "markdown"
|
|
13
|
+
},
|
|
14
|
+
"text": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"title": "Text",
|
|
17
|
+
"description": "Body text for the teaser card",
|
|
18
|
+
"format": "markdown"
|
|
19
|
+
},
|
|
20
|
+
"label": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"title": "Label",
|
|
23
|
+
"description": "Label for the Teaser Card"
|
|
24
|
+
},
|
|
25
|
+
"layout": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["stack", "row"],
|
|
28
|
+
"description": "Layout for the Teaser Card",
|
|
29
|
+
"default": "stack"
|
|
30
|
+
},
|
|
31
|
+
"target": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"title": "Target",
|
|
34
|
+
"description": "Target that should be linked",
|
|
35
|
+
"format": "uri"
|
|
36
|
+
},
|
|
37
|
+
"displayButton": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"title": "Display Button",
|
|
40
|
+
"description": "Toggle wether you want the card to have a visible button or not",
|
|
41
|
+
"default": true
|
|
42
|
+
},
|
|
43
|
+
"image": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"title": "Image",
|
|
46
|
+
"description": "Image to display as cover",
|
|
47
|
+
"format": "uri"
|
|
48
|
+
},
|
|
49
|
+
"imageRatio": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"enum": ["wide", "landscape", "square", "unset"],
|
|
52
|
+
"description": "Aspect ratio of the image",
|
|
53
|
+
"default": "wide"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"required": []
|
|
58
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
:root .c-teaser.c-component-teaser {
|
|
2
|
+
--g-topic--font: var(--ks-font-copy-l);
|
|
3
|
+
--g-topic--font-weight: var(--ks-font-weight-semi-bold);
|
|
4
|
+
--c-teaser_text--spacing: 0.25em;
|
|
5
|
+
--c-rich-text--font: var(--ks-font-copy-s);
|
|
6
|
+
--c-teaser--background: var(--ks-color-fg-alpha-9);
|
|
7
|
+
--c-teaser--color: var(--ks-color-fg-to-bg-3);
|
|
8
|
+
--c-teaser--border: 1px solid var(--ks-color-fg-alpha-8);
|
|
9
|
+
--c-teaser--border-radius: var(--ks-border-radius-card);
|
|
10
|
+
--c-teaser--shadow-hover: 0 1px 11px var(--ks-color-fg-alpha-6);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.c-teaser.c-component-teaser {
|
|
14
|
+
position: relative;
|
|
15
|
+
overflow: visible;
|
|
16
|
+
}
|
|
17
|
+
.c-teaser.c-component-teaser img {
|
|
18
|
+
border-radius: var(--c-teaser--border-radius) var(--c-teaser--border-radius) 0 0;
|
|
19
|
+
}
|
|
20
|
+
.c-teaser.c-component-teaser--label .c-teaser__label {
|
|
21
|
+
border-radius: var(--ks-border-radius-pill);
|
|
22
|
+
pointer-events: initial;
|
|
23
|
+
padding: 0.5em 1em;
|
|
24
|
+
transform: translate(0.5em, -50%);
|
|
25
|
+
font: var(--ks-font-interface-m);
|
|
26
|
+
text-align: center;
|
|
27
|
+
font-weight: var(--ks-font-weight-semi-bold);
|
|
28
|
+
color: var(--ks-color-fg-base);
|
|
29
|
+
position: absolute;
|
|
30
|
+
background: var(--ks-color-primary-inverted);
|
|
31
|
+
top: 0;
|
|
32
|
+
right: 0;
|
|
33
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { HTMLAttributes, FC, PropsWithChildren } from "react";
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
/**
|
|
5
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
6
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
7
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Headline for the teaser card
|
|
11
|
+
*/
|
|
12
|
+
type Headline = string;
|
|
13
|
+
/**
|
|
14
|
+
* Body text for the teaser card
|
|
15
|
+
*/
|
|
16
|
+
type Text = string;
|
|
17
|
+
/**
|
|
18
|
+
* Label for the Teaser Card
|
|
19
|
+
*/
|
|
20
|
+
type Label = string;
|
|
21
|
+
/**
|
|
22
|
+
* Target that should be linked
|
|
23
|
+
*/
|
|
24
|
+
type Target = string;
|
|
25
|
+
/**
|
|
26
|
+
* Image to display as cover
|
|
27
|
+
*/
|
|
28
|
+
type Image = string;
|
|
29
|
+
/**
|
|
30
|
+
* Component used to tease content
|
|
31
|
+
*/
|
|
32
|
+
interface ComponentTeaserProps {
|
|
33
|
+
title?: Headline;
|
|
34
|
+
text?: Text;
|
|
35
|
+
label?: Label;
|
|
36
|
+
target?: Target;
|
|
37
|
+
image?: Image;
|
|
38
|
+
}
|
|
39
|
+
declare const ComponentTeaser: import("react").ForwardRefExoticComponent<ComponentTeaserProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
40
|
+
declare const TeaserBoxProvider: FC<PropsWithChildren>;
|
|
41
|
+
export { ComponentTeaser, TeaserBoxProvider };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "./component-teaser.css";
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
import { TeaserBoxContextDefault, TeaserBoxContext } from '@kickstartds/base/lib/teaser-box';
|
|
6
|
+
|
|
7
|
+
const ComponentTeaser = forwardRef(({ title, text, target, image, label, ...props }, ref) => {
|
|
8
|
+
return (jsx(TeaserBoxContextDefault, { ...props, className: classnames(`c-component-teaser`, label && `c-component-teaser--label`), ratio: "16:6", topic: title, text: text,
|
|
9
|
+
// @ts-expect-error
|
|
10
|
+
renderTopic: () => (jsxs(Fragment, { children: [label ? jsx("span", { className: "c-teaser__label", children: label }) : "", title] })), link: {
|
|
11
|
+
hidden: true,
|
|
12
|
+
label: "Read more",
|
|
13
|
+
target: target,
|
|
14
|
+
}, image: image, ref: ref }));
|
|
15
|
+
});
|
|
16
|
+
const TeaserBoxProvider = (props) => (jsx(TeaserBoxContext.Provider, { ...props, value: ComponentTeaser }));
|
|
17
|
+
|
|
18
|
+
export { ComponentTeaser, TeaserBoxProvider };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HTMLAttributes, FC, PropsWithChildren } from "react";
|
|
2
|
+
import { TestimonialsProps } from "../../TestimonialsProps-d27ae4b4.js";
|
|
3
|
+
import { SliderProps } from "../../SliderProps-69b2f1d7.js";
|
|
4
|
+
interface ConditionalSliderProps extends SliderProps {
|
|
5
|
+
layout: "slider" | "list" | "alternating";
|
|
6
|
+
}
|
|
7
|
+
declare const ConditionalSlider: FC<PropsWithChildren<ConditionalSliderProps>>;
|
|
8
|
+
declare const Testimonials: FC<TestimonialsProps & HTMLAttributes<HTMLElement>>;
|
|
9
|
+
export { ConditionalSlider, Testimonials };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import "./testimonials.css";
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { Quote } from '@kickstartds/content/lib/quote';
|
|
4
|
+
import { Slider } from '../slider/index.js';
|
|
5
|
+
import '@kickstartds/content/lib/slider';
|
|
6
|
+
|
|
7
|
+
const ConditionalSlider = ({ layout, children, arrows, nav, ...props }) => {
|
|
8
|
+
if (layout === "slider") {
|
|
9
|
+
return (jsx(Slider, { className: "c-testimonials c-testimonials--slider", arrows: arrows, nav: nav, ...props, children: children }));
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
return (jsx("div", { className: "c-testimonials c-testimonials--list", ...props, children: children }));
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const Testimonials = ({ testimonials, layout = "slider", ...props }) => {
|
|
16
|
+
return (jsx(ConditionalSlider, { layout: layout, arrows: true, nav: true, ...props, children: testimonials.map((testimonial, index) => (jsx(Quote, { className: layout === "alternating" && index % 2 === 1
|
|
17
|
+
? "c-quote--reverse"
|
|
18
|
+
: "", text: testimonial.quote, source: testimonial.name, byline: testimonial.title, image: testimonial.image.src, renderSource: () => (jsxs(Fragment, { children: [testimonial?.rating &&
|
|
19
|
+
(testimonial?.rating ? (jsx("div", { children: [...Array(testimonial?.rating)].map((_, index) => (jsx("span", { children: "\u2605" }, index))) })) : ("")), jsx("div", { className: "c-quote__source", children: testimonial.name })] })) }, index))) }));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { ConditionalSlider, Testimonials };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.c-testimonials .c-quote {
|
|
2
|
+
--c-quote_text--font: var(--ks-font-copy-l);
|
|
3
|
+
--c-quote_source--color: var(--ks-color-fg);
|
|
4
|
+
--c-quote_source--font: var(--ks-font-copy-m);
|
|
5
|
+
--c-quote_content--padding-left: var(--ks-spacing-xl);
|
|
6
|
+
--c-quote_icon--font-family: var(--ks-font-family-copy);
|
|
7
|
+
--c-quote_icon--font-size: 3em;
|
|
8
|
+
--c-quote_icon--color: var(--ks-text-color-primary);
|
|
9
|
+
--c-quote_byline--font: var(--ks-font-copy-m);
|
|
10
|
+
--c-quote_byline--font-weight: var(--ks-font-weight-regular);
|
|
11
|
+
--c-quote_byline--color: var(--ks-text-color-default);
|
|
12
|
+
--c-quote_content--padding-left: var(--ks-spacing-xl);
|
|
13
|
+
}
|
|
14
|
+
@container quote (min-width: 640px) {
|
|
15
|
+
.c-testimonials .c-quote {
|
|
16
|
+
--c-quote_image--max-width: 40%;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
@container quote (min-width: 960px) {
|
|
20
|
+
.c-testimonials .c-quote {
|
|
21
|
+
--c-quote_content--padding-left: var(--ks-spacing-l);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
.c-testimonials .c-slider-main {
|
|
25
|
+
--c-slider_bullet--outline-color-active: var(--ks-text-color-primary);
|
|
26
|
+
--c-slider_bullet--size: 1rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.c-testimonials--list {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
gap: var(--ks-spacing-stack-xl);
|
|
33
|
+
}
|
|
34
|
+
.c-testimonials .c-quote__source {
|
|
35
|
+
color: var(--c-quote_source--color);
|
|
36
|
+
}
|
|
37
|
+
.c-testimonials .c-quote__byline {
|
|
38
|
+
color: var(--c-quote_byline--color);
|
|
39
|
+
}
|
|
40
|
+
.c-testimonials .c-quote__text {
|
|
41
|
+
margin-bottom: var(--ks-spacing-stack-s);
|
|
42
|
+
}
|
|
43
|
+
.c-testimonials .c-quote--reverse {
|
|
44
|
+
flex-direction: row-reverse;
|
|
45
|
+
}
|
|
46
|
+
.c-testimonials .c-quote--reverse .c-quote__content {
|
|
47
|
+
padding-right: var(--c-quote_content--padding-left);
|
|
48
|
+
padding-left: unset;
|
|
49
|
+
}
|
|
50
|
+
.c-testimonials .c-quote--reverse .c-quote__content:before {
|
|
51
|
+
right: var(--c-quote_icon--left, calc(var(--c-quote_content--padding-left) / -2));
|
|
52
|
+
top: 0;
|
|
53
|
+
left: unset;
|
|
54
|
+
}
|
|
55
|
+
.c-testimonials .c-quote .c-quote__content {
|
|
56
|
+
font: var(--c-quote_text--font);
|
|
57
|
+
}
|
|
58
|
+
.c-testimonials .c-quote .c-quote__content::before {
|
|
59
|
+
line-height: 0.7;
|
|
60
|
+
}
|
|
61
|
+
.c-testimonials .c-slider .c-slider-nav {
|
|
62
|
+
margin-top: var(--ks-spacing-stack-s);
|
|
63
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/testimonials.schema.json",
|
|
4
|
+
"title": "Testimonials",
|
|
5
|
+
"description": "Display testimonials with an optional image and rating",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"layout": {
|
|
9
|
+
"title": "Quote",
|
|
10
|
+
"description": "The testimonial quote",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"enum": [
|
|
13
|
+
"slider",
|
|
14
|
+
"list",
|
|
15
|
+
"alternating"
|
|
16
|
+
],
|
|
17
|
+
"default": "slider"
|
|
18
|
+
},
|
|
19
|
+
"testimonials": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"title": "Testimonials",
|
|
22
|
+
"description": "Add testimonials featuring an image, a quote, a source and a rating",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"quote": {
|
|
27
|
+
"title": "Quote",
|
|
28
|
+
"description": "The testimonial quote",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"examples": [
|
|
31
|
+
"This product is amazing!"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"name": {
|
|
35
|
+
"title": "Name",
|
|
36
|
+
"description": "The name of the quote author",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"examples": [
|
|
39
|
+
"John Doe"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"title": {
|
|
43
|
+
"title": "Title",
|
|
44
|
+
"description": "The title of the quote author",
|
|
45
|
+
"type": "string",
|
|
46
|
+
"examples": [
|
|
47
|
+
"CEO"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"image": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"properties": {
|
|
53
|
+
"src": {
|
|
54
|
+
"title": "Source",
|
|
55
|
+
"description": "The image to display with the testimonial",
|
|
56
|
+
"type": "string",
|
|
57
|
+
"examples": [
|
|
58
|
+
"https://example.com/image.jpg"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"alt": {
|
|
62
|
+
"title": "Alt Text",
|
|
63
|
+
"description": "The alt text of the image file",
|
|
64
|
+
"type": "string"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": false
|
|
68
|
+
},
|
|
69
|
+
"rating": {
|
|
70
|
+
"title": "Rating",
|
|
71
|
+
"description": "The rating of the testimonial, from 1 to 5",
|
|
72
|
+
"type": "integer",
|
|
73
|
+
"minimum": 1,
|
|
74
|
+
"maximum": 5
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"additionalProperties": false,
|
|
78
|
+
"required": [
|
|
79
|
+
"quote",
|
|
80
|
+
"name",
|
|
81
|
+
"image"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"type": {
|
|
86
|
+
"const": "testimonials"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"additionalProperties": false,
|
|
90
|
+
"required": [
|
|
91
|
+
"quote"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/testimonials.schema.json",
|
|
4
|
+
"title": "Testimonials",
|
|
5
|
+
"description": "Display testimonials with an optional image and rating",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"layout": {
|
|
9
|
+
"title": "Quote",
|
|
10
|
+
"description": "The testimonial quote",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"enum": ["slider", "list", "alternating"],
|
|
13
|
+
"default": "slider"
|
|
14
|
+
},
|
|
15
|
+
"testimonials": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"title": "Testimonials",
|
|
18
|
+
"description": "Add testimonials featuring an image, a quote, a source and a rating",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"properties": {
|
|
22
|
+
"quote": {
|
|
23
|
+
"title": "Quote",
|
|
24
|
+
"description": "The testimonial quote",
|
|
25
|
+
"type": "string",
|
|
26
|
+
"examples": ["This product is amazing!"]
|
|
27
|
+
},
|
|
28
|
+
"name": {
|
|
29
|
+
"title": "Name",
|
|
30
|
+
"description": "The name of the quote author",
|
|
31
|
+
"type": "string",
|
|
32
|
+
"examples": ["John Doe"]
|
|
33
|
+
},
|
|
34
|
+
"title": {
|
|
35
|
+
"title": "Title",
|
|
36
|
+
"description": "The title of the quote author",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"examples": ["CEO"]
|
|
39
|
+
},
|
|
40
|
+
"image": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"src": {
|
|
44
|
+
"title": "Source",
|
|
45
|
+
"description": "The image to display with the testimonial",
|
|
46
|
+
"type": "string",
|
|
47
|
+
"examples": ["https://example.com/image.jpg"]
|
|
48
|
+
},
|
|
49
|
+
"alt": {
|
|
50
|
+
"title": "Alt Text",
|
|
51
|
+
"description": "The alt text of the image file",
|
|
52
|
+
"type": "string"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"rating": {
|
|
57
|
+
"title": "Rating",
|
|
58
|
+
"description": "The rating of the testimonial, from 1 to 5",
|
|
59
|
+
"type": "integer",
|
|
60
|
+
"minimum": 1,
|
|
61
|
+
"maximum": 5
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"additionalProperties": false,
|
|
65
|
+
"required": ["quote", "name", "image"]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"additionalProperties": false,
|
|
70
|
+
"required": ["quote"]
|
|
71
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./text.css";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { RichText } from '@kickstartds/base/lib/rich-text';
|
|
5
|
+
|
|
6
|
+
const Text = ({ text, layout = "singleColumn", align = "left", highlightText = false, ...props }) => {
|
|
7
|
+
const layoutClass = `${layout === "multiColumn" ? "c-rich-text--columns" : ""}`;
|
|
8
|
+
const highlightClass = `${highlightText ? "c-rich-text--highlight" : ""}`;
|
|
9
|
+
const alignClass = `${align === "center" ? "c-rich-text--center" : ""}`;
|
|
10
|
+
return (jsx(RichText, { className: classnames("c-text", `${layoutClass}`, `${alignClass}`, `${highlightClass}`), ...props, text: text }));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { Text };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
.c-rich-text {
|
|
2
|
+
--ks-text-col-width: 16em;
|
|
3
|
+
}
|
|
4
|
+
.c-rich-text--highlight.c-rich-text {
|
|
5
|
+
color: var(--ks-color-fg);
|
|
6
|
+
font: var(--ks-font-copy-l);
|
|
7
|
+
}
|
|
8
|
+
.c-rich-text--center.c-rich-text {
|
|
9
|
+
text-align: center;
|
|
10
|
+
}
|
|
11
|
+
.c-rich-text--columns.c-rich-text {
|
|
12
|
+
column-gap: var(--ks-spacing-inline-m);
|
|
13
|
+
column-count: auto;
|
|
14
|
+
column-width: var(--ks-text-col-width);
|
|
15
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/text.schema.json",
|
|
4
|
+
"title": "Text",
|
|
5
|
+
"description": "Component used for displaying text in chapters",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"text": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"title": "Text",
|
|
11
|
+
"description": "Text",
|
|
12
|
+
"examples": [
|
|
13
|
+
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"layout": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"title": "Layout",
|
|
19
|
+
"description": "Variant of layout to be used",
|
|
20
|
+
"enum": [
|
|
21
|
+
"singleColumn",
|
|
22
|
+
"multiColumn"
|
|
23
|
+
],
|
|
24
|
+
"default": "singleColumn"
|
|
25
|
+
},
|
|
26
|
+
"align": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"title": "Alignment",
|
|
29
|
+
"description": "Alignment of text",
|
|
30
|
+
"enum": [
|
|
31
|
+
"left",
|
|
32
|
+
"center"
|
|
33
|
+
],
|
|
34
|
+
"default": "left"
|
|
35
|
+
},
|
|
36
|
+
"highlightText": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"title": "Highlight Text",
|
|
39
|
+
"description": "Visually highlight the text",
|
|
40
|
+
"default": false
|
|
41
|
+
},
|
|
42
|
+
"type": {
|
|
43
|
+
"const": "text"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"additionalProperties": false,
|
|
47
|
+
"required": [
|
|
48
|
+
"text"
|
|
49
|
+
]
|
|
50
|
+
}
|