@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
package/README.md
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# kickstartDS Agency Starter
|
|
2
|
+
|
|
3
|
+
kickstartDS Agency Starter is a specialized version of the kickstartDS Starter, tailored for digital agencies. It provides a set of content components that can be used to style marketing pages, while maintaining the flexibility and customizability of the original starter.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Design System:** A ready-to-use Design System, with pre-configured semantic token structure and example components.
|
|
8
|
+
- **Storybook Integration:** Storybook is configured with best practices, kickstartDS integration, addons, and composition. Hot reload is enabled for all code changes.
|
|
9
|
+
- **Playroom Integration:** Playroom is integrated for prototyping.
|
|
10
|
+
- **Bundling:** The Design System is bundled for use with and without React.
|
|
11
|
+
- **Release Handling:** Semantic release handling is configured using auto.
|
|
12
|
+
- **Content:** Includes components, recipes, pages, and docs.
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
To install the Agency Starter, you need to have Node.js installed. We recommend managing your local Node.js versions using [nvm](https://github.com/nvm-sh/nvm).
|
|
17
|
+
|
|
18
|
+
## Getting Started
|
|
19
|
+
|
|
20
|
+
To get started with the Agency Starter, follow these steps:
|
|
21
|
+
|
|
22
|
+
1. Create a new repository based on this template.
|
|
23
|
+
2. Update the `package.json` file with your project details.
|
|
24
|
+
3. Add your own logo.
|
|
25
|
+
4. Install the dependencies (`npm install` / `yarn install`).
|
|
26
|
+
5. Start Storybook (`npm start`, `yarn start`).
|
|
27
|
+
|
|
28
|
+
## Components
|
|
29
|
+
|
|
30
|
+
The Agency Starter includes several components that are immediately useful for creating marketing pages. These components are built using the kickstartDS Starter and kickstartDS itself, showcasing its features and best practices:
|
|
31
|
+
|
|
32
|
+
| Component | Description | Main Properties |
|
|
33
|
+
| --------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
34
|
+
| **Blog Aside** | This component provides meta info for a singular blog entry. | author, social sharing links, reading time, and published date |
|
|
35
|
+
| **Blog Head** | This component serves as the intro portion of a singular blog entry. | published date, tags, headline, and cover image |
|
|
36
|
+
| **Blog Teaser** | This component is used to display a blog teaser with date, tags, headline, teaser text and author. | date, tags, headline, teaser text, image, link, reading time, and author |
|
|
37
|
+
| **Button** | A basic button component for user interaction. | label, target, variant, icon, size, and disabled state |
|
|
38
|
+
| **CTA** | A Call to Action component. | headline, subheadline, text, button, and alignment |
|
|
39
|
+
| **FAQ** | This component is used to display a FAQ section. | an array of questions and answers |
|
|
40
|
+
| **Features** | This component is used to display a set of features. | layout and features |
|
|
41
|
+
| **Footer** | A basic footer component. | logo, navigation, and social links |
|
|
42
|
+
| **Gallery** | This component is used to display a gallery of images. | images and captions |
|
|
43
|
+
| **Header** | A basic header component. | logo, navigation, and social links |
|
|
44
|
+
| **Logos** | This component is used to display a set of logos. | an array of logos |
|
|
45
|
+
| **Nav Main** | This component is used for main navigation. | an array of navigation items |
|
|
46
|
+
| **Section** | This component is used to layout components into pages. | title, content, and layout |
|
|
47
|
+
| **Split** | This component is used to create a split layout. | left and right content |
|
|
48
|
+
| **Stats** | This component is used to display a set of statistics. | an array of stats |
|
|
49
|
+
| **Teaser Card** | This component is used to display a teaser card. | image, headline, text, and link |
|
|
50
|
+
| **Testimonial** | This component is used to display a testimonial. | author, quote, and image |
|
|
51
|
+
| **Text** | A basic text component. | content and variant |
|
|
52
|
+
| **Visual** | This component is used to display a visual element. | image, alt text, and caption |
|
|
53
|
+
|
|
54
|
+
## Customizing
|
|
55
|
+
|
|
56
|
+
### Applying your Design / Brand
|
|
57
|
+
|
|
58
|
+
To apply your branding and corporate design to kickstartDS, you need to follow two main steps:
|
|
59
|
+
|
|
60
|
+
1. Use a reduced set of Branding Token to generate your initial Design Token set in `src/token/branding-token.json`.
|
|
61
|
+
2. Fine-tune the resulting Design Token set in `src/token/dictionary` to closely fit your corporate identity.
|
|
62
|
+
|
|
63
|
+
For a more in-depth overview of those tokens, have a look at our [foundations page](https://www.kickstartds.com/docs/foundations/token/) about [Branding Token](https://www.kickstartds.com/docs/foundations/token/branding-token/), detailing all values in use.
|
|
64
|
+
|
|
65
|
+
You can change some select values around to match your brand. For example, you might want to change the `primary` color to `#05566a`, the `primary-inverted` color to `#ecff00`, and the `font-family` to `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'` if you're trying to recreate the kickstartDS branding.
|
|
66
|
+
|
|
67
|
+
After you've selected your Branding Tokens, you can apply them by updating the `branding-token.json` file with your chosen values, and running `npm run init-tokens` / `yarn init-tokens`.
|
|
68
|
+
|
|
69
|
+
With this, you have completed your Design Token setup, and your branding should be successfully applied to kickstartDS!
|
|
70
|
+
|
|
71
|
+
### Adding Your Own Component
|
|
72
|
+
|
|
73
|
+
To add your own component to this project, you can follow the guide ["Create a component"](https://www.kickstartds.com/docs/guides/examples/components/teaser-card/). Alternatively you can read about the ideas behind [component creation](https://www.kickstartds.com/docs/guides/components/create/). Here is a brief overview of the steps involved:
|
|
74
|
+
|
|
75
|
+
1. **Create your component file:** This should be a `.tsx` file in the `src/components` directory. The component should be a functional component and should follow the structure of existing components. For example, if you're creating a `MyComponent` component, you would create a `MyComponent.tsx` file in the `src/components/my-component` directory.
|
|
76
|
+
|
|
77
|
+
2. **Create your component's JSON Schema:** This should be a `.schema.json` file in the same directory as your component file. This file should define the [component API](https://www.kickstartds.com/docs/foundations/components/component-api/) for your component. For example, if you're creating a `MyComponent` component, you would create a `my-component.schema.json` file in the `src/components/my-component` directory. The `.ts` file for props will be generated based on this JSON Schema definition.
|
|
78
|
+
|
|
79
|
+
3. **Create your component's Storybook file:** This should be a `.stories.tsx` file in the same directory as your component file. This file should define the Storybook stories for your component. For example, if you're creating a `MyComponent` component, you would create a `MyComponent.stories.tsx` file in the `src/components/my-component` directory.
|
|
80
|
+
|
|
81
|
+
4. **Add your component to the Playroom components:** This involves adding an export statement for your component in the `src/playroom/components.ts` file.
|
|
82
|
+
|
|
83
|
+
## Contributing
|
|
84
|
+
|
|
85
|
+
Contributions are welcome. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.
|
|
86
|
+
|
|
87
|
+
## License
|
|
88
|
+
|
|
89
|
+
This project is licensed under either of
|
|
90
|
+
|
|
91
|
+
- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([LICENSE-APACHE](LICENSE-APACHE))
|
|
92
|
+
- [MIT license](https://opensource.org/license/mit/) ([LICENSE-MIT](LICENSE-MIT))
|
|
93
|
+
|
|
94
|
+
at your option.
|
|
95
|
+
|
|
96
|
+
The SPDX license identifier for this project is MIT OR Apache-2.0.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
3
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
4
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Text content to display inside the button
|
|
8
|
+
*/
|
|
9
|
+
type Label = string;
|
|
10
|
+
/**
|
|
11
|
+
* Target that should be linked, makes the button behave like a link semantically
|
|
12
|
+
*/
|
|
13
|
+
type Target = string;
|
|
14
|
+
/**
|
|
15
|
+
* Variant of button to be used
|
|
16
|
+
*/
|
|
17
|
+
type Variant = "primary" | "secondary" | "tertiary";
|
|
18
|
+
/**
|
|
19
|
+
* Choose an icon
|
|
20
|
+
*/
|
|
21
|
+
type Icon = string;
|
|
22
|
+
/**
|
|
23
|
+
* Size of button to use
|
|
24
|
+
*/
|
|
25
|
+
type Size = "small" | "medium" | "large";
|
|
26
|
+
/**
|
|
27
|
+
* Whether the button should be disabled
|
|
28
|
+
*/
|
|
29
|
+
type Disabled = boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Component used for user interaction
|
|
32
|
+
*/
|
|
33
|
+
interface ButtonProps {
|
|
34
|
+
label: Label;
|
|
35
|
+
target?: Target;
|
|
36
|
+
variant?: Variant;
|
|
37
|
+
icon?: Icon;
|
|
38
|
+
size?: Size;
|
|
39
|
+
disabled?: Disabled;
|
|
40
|
+
}
|
|
41
|
+
export { Label, Target, Variant, Icon, Size, Disabled, ButtonProps };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
3
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
4
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Headline for the Component element
|
|
8
|
+
*/
|
|
9
|
+
type ComponentHeadline = string;
|
|
10
|
+
/**
|
|
11
|
+
* Subheadline below the component headline
|
|
12
|
+
*/
|
|
13
|
+
type ComponentSubheadline = string;
|
|
14
|
+
/**
|
|
15
|
+
* Info text for the component element
|
|
16
|
+
*/
|
|
17
|
+
type ComponentText = string;
|
|
18
|
+
/**
|
|
19
|
+
* Visually highlight the text
|
|
20
|
+
*/
|
|
21
|
+
type HighlightText = boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Make the text and buttons color neutral
|
|
24
|
+
*/
|
|
25
|
+
type ColorNeutral = boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Set the width of the content to the full width of the element
|
|
28
|
+
*/
|
|
29
|
+
type Width = boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Text content to display inside the button
|
|
32
|
+
*/
|
|
33
|
+
type Label = string;
|
|
34
|
+
/**
|
|
35
|
+
* Choose an icon
|
|
36
|
+
*/
|
|
37
|
+
type Icon = string;
|
|
38
|
+
/**
|
|
39
|
+
* Target that should be linked, makes the button behave like a link semantically
|
|
40
|
+
*/
|
|
41
|
+
type Target = string;
|
|
42
|
+
/**
|
|
43
|
+
* Background color for the whole element
|
|
44
|
+
*/
|
|
45
|
+
type BackgroundColor = string;
|
|
46
|
+
/**
|
|
47
|
+
* Background image for the whole element
|
|
48
|
+
*/
|
|
49
|
+
type BackgroundImage = string;
|
|
50
|
+
/**
|
|
51
|
+
* Image source to use
|
|
52
|
+
*/
|
|
53
|
+
type ImageSource = string;
|
|
54
|
+
/**
|
|
55
|
+
* Toggle padding of the image
|
|
56
|
+
*/
|
|
57
|
+
type Padding = boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Image description
|
|
60
|
+
*/
|
|
61
|
+
type AltText = string;
|
|
62
|
+
/**
|
|
63
|
+
* Switch to displaying the image after the text on mobile
|
|
64
|
+
*/
|
|
65
|
+
type MobileImageAfterText = boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Switch to displaying the image after the text on desktop
|
|
68
|
+
*/
|
|
69
|
+
type DesktopImageAfterText = boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Choose the alginment of the text
|
|
72
|
+
*/
|
|
73
|
+
type TextAlignment = "left" | "center";
|
|
74
|
+
/**
|
|
75
|
+
* Select a vertical alignment for the image
|
|
76
|
+
*/
|
|
77
|
+
type VerticalAlignmentOfTheContent = "center" | "top" | "bottom";
|
|
78
|
+
interface CtaProps {
|
|
79
|
+
headline?: ComponentHeadline;
|
|
80
|
+
sub?: ComponentSubheadline;
|
|
81
|
+
text?: ComponentText;
|
|
82
|
+
highlightText?: HighlightText;
|
|
83
|
+
colorNeutral?: ColorNeutral;
|
|
84
|
+
fullWidth?: Width;
|
|
85
|
+
buttons?: Button[];
|
|
86
|
+
backgroundColor?: BackgroundColor;
|
|
87
|
+
backgroundImage?: BackgroundImage;
|
|
88
|
+
image?: Image;
|
|
89
|
+
order?: Order;
|
|
90
|
+
textAlign?: TextAlignment;
|
|
91
|
+
contentAlign?: VerticalAlignmentOfTheContent;
|
|
92
|
+
}
|
|
93
|
+
interface Button {
|
|
94
|
+
label?: Label;
|
|
95
|
+
icon?: Icon;
|
|
96
|
+
target?: Target;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Image displayed alongside the text content
|
|
100
|
+
*/
|
|
101
|
+
interface Image {
|
|
102
|
+
src?: ImageSource;
|
|
103
|
+
padding?: Padding;
|
|
104
|
+
alt?: AltText;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Choose what comes first on mobile and desktop: image or text
|
|
108
|
+
*/
|
|
109
|
+
interface Order {
|
|
110
|
+
mobileImageLast?: MobileImageAfterText;
|
|
111
|
+
desktopImageLast?: DesktopImageAfterText;
|
|
112
|
+
}
|
|
113
|
+
export { ComponentHeadline, ComponentSubheadline, ComponentText, HighlightText, ColorNeutral, Width, Label, Icon, Target, BackgroundColor, BackgroundImage, ImageSource, Padding, AltText, MobileImageAfterText, DesktopImageAfterText, TextAlignment, VerticalAlignmentOfTheContent, CtaProps, Button, Image, Order };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
3
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
4
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The questions and answers in the Faq section
|
|
8
|
+
*
|
|
9
|
+
* @minItems 1
|
|
10
|
+
*/
|
|
11
|
+
type Questions = [
|
|
12
|
+
{
|
|
13
|
+
question: Question;
|
|
14
|
+
answer: Answer;
|
|
15
|
+
},
|
|
16
|
+
...{
|
|
17
|
+
question: Question;
|
|
18
|
+
answer: Answer;
|
|
19
|
+
}[]
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* The question
|
|
23
|
+
*/
|
|
24
|
+
type Question = string;
|
|
25
|
+
/**
|
|
26
|
+
* The answer to the question
|
|
27
|
+
*/
|
|
28
|
+
type Answer = string;
|
|
29
|
+
/**
|
|
30
|
+
* Component used to display a Faq section
|
|
31
|
+
*/
|
|
32
|
+
interface FaqProps {
|
|
33
|
+
questions: Questions;
|
|
34
|
+
}
|
|
35
|
+
export { Questions, Question, Answer, FaqProps };
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
3
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
4
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The layout variant to use for the features
|
|
8
|
+
*/
|
|
9
|
+
type Layout = "largeTiles" | "smallTiles" | "list";
|
|
10
|
+
/**
|
|
11
|
+
* Activate/disable the CTAs
|
|
12
|
+
*/
|
|
13
|
+
type CTAToggle = boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The features to display
|
|
16
|
+
*
|
|
17
|
+
* @minItems 1
|
|
18
|
+
* @maxItems 8
|
|
19
|
+
*/
|
|
20
|
+
type Features = [
|
|
21
|
+
{
|
|
22
|
+
icon?: Icon;
|
|
23
|
+
title: Title;
|
|
24
|
+
text: Text;
|
|
25
|
+
cta?: CallToAction;
|
|
26
|
+
}
|
|
27
|
+
] | [
|
|
28
|
+
{
|
|
29
|
+
icon?: Icon;
|
|
30
|
+
title: Title;
|
|
31
|
+
text: Text;
|
|
32
|
+
cta?: CallToAction;
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
icon?: Icon;
|
|
36
|
+
title: Title;
|
|
37
|
+
text: Text;
|
|
38
|
+
cta?: CallToAction;
|
|
39
|
+
}
|
|
40
|
+
] | [
|
|
41
|
+
{
|
|
42
|
+
icon?: Icon;
|
|
43
|
+
title: Title;
|
|
44
|
+
text: Text;
|
|
45
|
+
cta?: CallToAction;
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
icon?: Icon;
|
|
49
|
+
title: Title;
|
|
50
|
+
text: Text;
|
|
51
|
+
cta?: CallToAction;
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
icon?: Icon;
|
|
55
|
+
title: Title;
|
|
56
|
+
text: Text;
|
|
57
|
+
cta?: CallToAction;
|
|
58
|
+
}
|
|
59
|
+
] | [
|
|
60
|
+
{
|
|
61
|
+
icon?: Icon;
|
|
62
|
+
title: Title;
|
|
63
|
+
text: Text;
|
|
64
|
+
cta?: CallToAction;
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
icon?: Icon;
|
|
68
|
+
title: Title;
|
|
69
|
+
text: Text;
|
|
70
|
+
cta?: CallToAction;
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
icon?: Icon;
|
|
74
|
+
title: Title;
|
|
75
|
+
text: Text;
|
|
76
|
+
cta?: CallToAction;
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
icon?: Icon;
|
|
80
|
+
title: Title;
|
|
81
|
+
text: Text;
|
|
82
|
+
cta?: CallToAction;
|
|
83
|
+
}
|
|
84
|
+
] | [
|
|
85
|
+
{
|
|
86
|
+
icon?: Icon;
|
|
87
|
+
title: Title;
|
|
88
|
+
text: Text;
|
|
89
|
+
cta?: CallToAction;
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
icon?: Icon;
|
|
93
|
+
title: Title;
|
|
94
|
+
text: Text;
|
|
95
|
+
cta?: CallToAction;
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
icon?: Icon;
|
|
99
|
+
title: Title;
|
|
100
|
+
text: Text;
|
|
101
|
+
cta?: CallToAction;
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
icon?: Icon;
|
|
105
|
+
title: Title;
|
|
106
|
+
text: Text;
|
|
107
|
+
cta?: CallToAction;
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
icon?: Icon;
|
|
111
|
+
title: Title;
|
|
112
|
+
text: Text;
|
|
113
|
+
cta?: CallToAction;
|
|
114
|
+
}
|
|
115
|
+
] | [
|
|
116
|
+
{
|
|
117
|
+
icon?: Icon;
|
|
118
|
+
title: Title;
|
|
119
|
+
text: Text;
|
|
120
|
+
cta?: CallToAction;
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
icon?: Icon;
|
|
124
|
+
title: Title;
|
|
125
|
+
text: Text;
|
|
126
|
+
cta?: CallToAction;
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
icon?: Icon;
|
|
130
|
+
title: Title;
|
|
131
|
+
text: Text;
|
|
132
|
+
cta?: CallToAction;
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
icon?: Icon;
|
|
136
|
+
title: Title;
|
|
137
|
+
text: Text;
|
|
138
|
+
cta?: CallToAction;
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
icon?: Icon;
|
|
142
|
+
title: Title;
|
|
143
|
+
text: Text;
|
|
144
|
+
cta?: CallToAction;
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
icon?: Icon;
|
|
148
|
+
title: Title;
|
|
149
|
+
text: Text;
|
|
150
|
+
cta?: CallToAction;
|
|
151
|
+
}
|
|
152
|
+
] | [
|
|
153
|
+
{
|
|
154
|
+
icon?: Icon;
|
|
155
|
+
title: Title;
|
|
156
|
+
text: Text;
|
|
157
|
+
cta?: CallToAction;
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
icon?: Icon;
|
|
161
|
+
title: Title;
|
|
162
|
+
text: Text;
|
|
163
|
+
cta?: CallToAction;
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
icon?: Icon;
|
|
167
|
+
title: Title;
|
|
168
|
+
text: Text;
|
|
169
|
+
cta?: CallToAction;
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
icon?: Icon;
|
|
173
|
+
title: Title;
|
|
174
|
+
text: Text;
|
|
175
|
+
cta?: CallToAction;
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
icon?: Icon;
|
|
179
|
+
title: Title;
|
|
180
|
+
text: Text;
|
|
181
|
+
cta?: CallToAction;
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
icon?: Icon;
|
|
185
|
+
title: Title;
|
|
186
|
+
text: Text;
|
|
187
|
+
cta?: CallToAction;
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
icon?: Icon;
|
|
191
|
+
title: Title;
|
|
192
|
+
text: Text;
|
|
193
|
+
cta?: CallToAction;
|
|
194
|
+
}
|
|
195
|
+
] | [
|
|
196
|
+
{
|
|
197
|
+
icon?: Icon;
|
|
198
|
+
title: Title;
|
|
199
|
+
text: Text;
|
|
200
|
+
cta?: CallToAction;
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
icon?: Icon;
|
|
204
|
+
title: Title;
|
|
205
|
+
text: Text;
|
|
206
|
+
cta?: CallToAction;
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
icon?: Icon;
|
|
210
|
+
title: Title;
|
|
211
|
+
text: Text;
|
|
212
|
+
cta?: CallToAction;
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
icon?: Icon;
|
|
216
|
+
title: Title;
|
|
217
|
+
text: Text;
|
|
218
|
+
cta?: CallToAction;
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
icon?: Icon;
|
|
222
|
+
title: Title;
|
|
223
|
+
text: Text;
|
|
224
|
+
cta?: CallToAction;
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
icon?: Icon;
|
|
228
|
+
title: Title;
|
|
229
|
+
text: Text;
|
|
230
|
+
cta?: CallToAction;
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
icon?: Icon;
|
|
234
|
+
title: Title;
|
|
235
|
+
text: Text;
|
|
236
|
+
cta?: CallToAction;
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
icon?: Icon;
|
|
240
|
+
title: Title;
|
|
241
|
+
text: Text;
|
|
242
|
+
cta?: CallToAction;
|
|
243
|
+
}
|
|
244
|
+
];
|
|
245
|
+
/**
|
|
246
|
+
* The icon for the feature
|
|
247
|
+
*/
|
|
248
|
+
type Icon = string;
|
|
249
|
+
/**
|
|
250
|
+
* The title of the feature
|
|
251
|
+
*/
|
|
252
|
+
type Title = string;
|
|
253
|
+
/**
|
|
254
|
+
* The description of the feature
|
|
255
|
+
*/
|
|
256
|
+
type Text = string;
|
|
257
|
+
/**
|
|
258
|
+
* The CTA target
|
|
259
|
+
*/
|
|
260
|
+
type CallToActionTarget = string;
|
|
261
|
+
/**
|
|
262
|
+
* The text label displayed on the link
|
|
263
|
+
*/
|
|
264
|
+
type LinkLabel = string;
|
|
265
|
+
/**
|
|
266
|
+
* Component used to display a set of features
|
|
267
|
+
*/
|
|
268
|
+
interface FeaturesProps {
|
|
269
|
+
layout?: Layout;
|
|
270
|
+
style?: "intext" | "stack" | "centered" | "besideLarge" | "besideSmall";
|
|
271
|
+
ctas?: {
|
|
272
|
+
toggle?: CTAToggle;
|
|
273
|
+
style?: "button" | "link" | "intext";
|
|
274
|
+
};
|
|
275
|
+
features?: Features;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* The call to action
|
|
279
|
+
*/
|
|
280
|
+
interface CallToAction {
|
|
281
|
+
target?: CallToActionTarget;
|
|
282
|
+
label?: LinkLabel;
|
|
283
|
+
}
|
|
284
|
+
export { Layout, CTAToggle, Features, Icon, Title, Text, CallToActionTarget, LinkLabel, FeaturesProps, CallToAction };
|