diff --git a/.storybook/preview.js b/.storybook/preview.js index 5d68f13f..6d7ec56c 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -4,7 +4,7 @@ require('twig'); const storyOrder = [ 'Welcome', - 'About', + 'About CivicTheme', 'Base', [ 'Colors', diff --git a/assets/icons/lock-file.svg b/assets/icons/lock-file.svg index 11ebac49..6082a741 100644 --- a/assets/icons/lock-file.svg +++ b/assets/icons/lock-file.svg @@ -1,4 +1,4 @@ - - + + diff --git a/assets/icons/lock-gallery.svg b/assets/icons/lock-gallery.svg index d3258743..4c31419c 100644 --- a/assets/icons/lock-gallery.svg +++ b/assets/icons/lock-gallery.svg @@ -1,4 +1,4 @@ - - + + diff --git a/assets/icons/open-source.svg b/assets/icons/open-source.svg new file mode 100644 index 00000000..9a95c043 --- /dev/null +++ b/assets/icons/open-source.svg @@ -0,0 +1,3 @@ + + + diff --git a/components/00-base/about/about.stories.js b/components/00-base/about-civictheme/about-civictheme.stories.js similarity index 59% rename from components/00-base/about/about.stories.js rename to components/00-base/about-civictheme/about-civictheme.stories.js index 5e049418..b116cef2 100644 --- a/components/00-base/about/about.stories.js +++ b/components/00-base/about-civictheme/about-civictheme.stories.js @@ -1,7 +1,7 @@ -import AboutExample from './about.stories.twig'; +import AboutCivicThemeExample from './about-civictheme.stories.twig'; export default { - title: 'About', + title: 'About CivicTheme', parameters: { layout: 'fullscreen', options: { showPanel: false }, @@ -9,7 +9,7 @@ export default { }, }; -export const About = () => AboutExample({ +export const AboutCivicTheme = () => AboutCivicThemeExample({ logos: { primary: { mobile: { @@ -21,3 +21,5 @@ export const About = () => AboutExample({ }, }, }); + +AboutCivicTheme.storyName = 'About CivicTheme'; diff --git a/components/00-base/about-civictheme/about-civictheme.stories.scss b/components/00-base/about-civictheme/about-civictheme.stories.scss new file mode 100644 index 00000000..a58419d9 --- /dev/null +++ b/components/00-base/about-civictheme/about-civictheme.stories.scss @@ -0,0 +1,37 @@ +.story-about-civictheme { + // CivicTheme's own brand colour. + background-color: #003f56; + + .ct-logo { + .ct-logo__image--mobile { + max-height: ct-particle(6); + } + + .ct-logo__image--desktop { + max-height: ct-particle(12); + } + } + + .ct-heading { + margin-top: ct-spacing(3); + + @include ct-breakpoint(m) { + margin-top: 0; + } + } + + .ct-item-list__item { + display: flex; + padding-left: 0; + align-items: center; + + .ct-paragraph { + padding-left: ct-spacing(2); + margin-bottom: 0; + } + + .ct-icon { + overflow: visible; + } + } +} diff --git a/components/00-base/about-civictheme/about-civictheme.stories.twig b/components/00-base/about-civictheme/about-civictheme.stories.twig new file mode 100644 index 00000000..2ba563e8 --- /dev/null +++ b/components/00-base/about-civictheme/about-civictheme.stories.twig @@ -0,0 +1,212 @@ +
+
+
+
+ {% include '@molecules/logo/logo.twig' with { + theme: 'light', + logos: logos, + url: 'https://civictheme.io/', + } only %} +
+
+
+
+
+
+
+ {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'CivicTheme is an open-source design system build for modern web development. It offers a comprehensive suite of customisable components and templates designed to streamline the creation of visually appealing and highly functional websites.', + } only %} + + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'With a strong emphasis on accessibility compliance, CivicTheme ensures compliance with WCAG 2.2 standards and the platform\'s responsive design provides a seamless user experience across various devices and screen sizes. The rich library of pre-built components, such as buttons, forms, and navigation menus, allow developers to quickly integrate essential features into their projects, significantly reducing development time and costs.', + } only %} + +
+
+ {% include '@atoms/heading/heading.twig' with { + theme: 'dark', + content: 'Key benefits', + level: 3, + } only %} + + {% set list_item1 %} + {% include '@base/icon/icon.twig' with { + symbol: 'layer', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: list_item_icon_1 ~ ' Atomic design system of 60+ components', + allow_html: true, + } only %} + {% endset %} + + {% set list_item2 %} + {% include '@base/icon/icon.twig' with { + symbol: 'eye', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Compliant with WCAG 2.2 AA Standards', + } only %} + {% endset %} + + {% set list_item3 %} + {% include '@base/icon/icon.twig' with { + symbol: 'water-drop', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Integrates with Drupal theme', + } only %} + {% endset %} + + {% set list_item4 %} + {% include '@base/icon/icon.twig' with { + symbol: 'open-source', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Open source and community-driven', + } only %} + {% endset %} + + {% include '@base/item-list/item-list.twig' with { + direction: 'vertical', + items: [ + list_item1, + list_item2, + list_item3, + list_item4, + ], + } only %} +
+ +
+ + {% include '@atoms/heading/heading.twig' with { + theme: 'dark', + content: 'Key features', + level: 3, + } only %} + + {% set list_item1 %} + {% include '@base/icon/icon.twig' with { + symbol: 'web', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Enhanced user experience', + } only %} + {% endset %} + + {% set list_item2 %} + {% include '@base/icon/icon.twig' with { + symbol: 'mobile', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Responsive design and consistent branding', + } only %} + {% endset %} + + {% set list_item3 %} + {% include '@base/icon/icon.twig' with { + symbol: 'layers', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Scalable and flexible for evolving needs', + } only %} + {% endset %} + + {% set list_item4 %} + {% include '@base/icon/icon.twig' with { + symbol: 'document', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Documentation and support', + } only %} + {% endset %} + + {% include '@base/item-list/item-list.twig' with { + direction: 'vertical', + items: [ + list_item1, + list_item2, + list_item3, + list_item4, + ], + } only %} +
+
+
+
+ +
+
+ {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'CivicTheme\'s focus on consistent branding and design aims to ensure that organisations can maintain a cohesive online presence, reinforcing their brand identity across all digital touchpoints.', + } only %} + + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'Ultimately, CivicTheme\'s blend of flexibility, scalability, and cost efficiency makes it an ideal choice for organisations seeking to create professional, user-friendly websites without the need for extensive development resources.', + } only %} +
+
+ +
+
+ {% include '@atoms/heading/heading.twig' with { + theme: 'dark', + content: 'Under the following conditions:', + level: 5, + } only %} + + {% set list_item1 %} + {% include '@base/icon/icon.twig' with { + symbol: 'lock-file', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'This page must remain in Figma.', + } only %} + {% endset %} + + {% set list_item2 %} + {% include '@base/icon/icon.twig' with { + symbol: 'lock-gallery', + size: 'large', + } only %} + {% include '@atoms/paragraph/paragraph.twig' with { + theme: 'dark', + content: 'The co-branded logo must remain in Storybook and must not be deleted.', + } only %} + {% endset %} + + {% include '@base/item-list/item-list.twig' with { + direction: 'vertical', + items: [ + list_item1, + list_item2, + ], + } only %} +
+
+
+
+
diff --git a/components/00-base/about/about.stories.scss b/components/00-base/about/about.stories.scss deleted file mode 100644 index fbd2f811..00000000 --- a/components/00-base/about/about.stories.scss +++ /dev/null @@ -1,14 +0,0 @@ -.story-about { - .ct-item-list__item { - display: inline-flex; - padding-left: 0; - - .ct-paragraph { - padding-left: ct-spacing(2); - } - - &::before { - content: none; - } - } -} diff --git a/components/00-base/about/about.stories.twig b/components/00-base/about/about.stories.twig deleted file mode 100644 index d2478806..00000000 --- a/components/00-base/about/about.stories.twig +++ /dev/null @@ -1,204 +0,0 @@ -
-
-
-
- {% include '@molecules/logo/logo.twig' with { - theme: 'light', - logos: logos, - } only %} - - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'CivicTheme is an open-source design system build for modern web development. It offers a comprehensive suite of customisable components and templates designed to streamline the creation of visually appealing and highly functional websites.', - } only %} - - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'With a strong emphasis on accessibility compliance, CivicTheme ensures compliance with WCAG 2.2 standards and the platform\'s responsive design provides a seamless user experience across various devices and screen sizes. The rich library of pre-built components, such as buttons, forms, and navigation menus, allow developers to quickly integrate essential features into their projects, significantly reducing development time and costs.', - } only %} - -
-
- {% include '@atoms/heading/heading.twig' with { - theme: 'dark', - content: 'Key benefits', - level: 5, - } only %} - - {% set list_item1 %} - {% include '@base/icon/icon.twig' with { - symbol: 'eye', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Accessibility compliance to WCAG 2.2 AA', - } only %} - {% endset %} - - {% set list_item2 %} - {% include '@base/icon/icon.twig' with { - symbol: 'layer', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Figma atomic design library of HTML UI components', - } only %} - {% endset %} - - {% set list_item3 %} - {% include '@base/icon/icon.twig' with { - symbol: 'water-drop', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Includes Drupal theme with 60+ components', - } only %} - {% endset %} - - {% set list_item4 %} - {% include '@base/icon/icon.twig' with { - symbol: 'document', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Open Source documentation and community-driven', - } only %} - {% endset %} - - {% include '@base/item-list/item-list.twig' with { - direction: 'vertical', - items: [ - list_item1, - list_item2, - list_item3, - list_item4, - ], - } only %} -
- -
- - {% include '@atoms/heading/heading.twig' with { - theme: 'dark', - content: 'Key features', - level: 5, - } only %} - - {% set list_item1 %} - {% include '@base/icon/icon.twig' with { - symbol: 'web', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Enhanced user experience', - } only %} - {% endset %} - - {% set list_item2 %} - {% include '@base/icon/icon.twig' with { - symbol: 'mobile', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Responsive design and consistent branding', - } only %} - {% endset %} - - {% set list_item3 %} - {% include '@base/icon/icon.twig' with { - symbol: 'layers', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Scalable and flexible for evolving needs', - } only %} - {% endset %} - - {% set list_item4 %} - {% include '@base/icon/icon.twig' with { - symbol: 'users', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Community Support and collaboration', - } only %} - {% endset %} - - {% include '@base/item-list/item-list.twig' with { - direction: 'vertical', - items: [ - list_item1, - list_item2, - list_item3, - list_item4, - ], - } only %} -
-
-
-
- -
-
- {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'CivicTheme\'s focus on consistent branding and design aims to ensure that organisations can maintain a cohesive online presence, reinforcing their brand identity across all digital touchpoints.', - } only %} - - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'Ultimately, CivicTheme\'s blend of flexibility, scalability, and cost efficiency makes it an ideal choice for organisations seeking to create professional, user-friendly websites without the need for extensive development resources.', - } only %} -
-
- -
-
- {% include '@atoms/heading/heading.twig' with { - theme: 'dark', - content: 'Under the following conditions:', - level: 5, - } only %} - - {% set list_item1 %} - {% include '@base/icon/icon.twig' with { - symbol: 'lock-file', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'This page must remain in Figma.', - } only %} - {% endset %} - - {% set list_item2 %} - {% include '@base/icon/icon.twig' with { - symbol: 'lock-gallery', - size: 'large', - } only %} - {% include '@atoms/paragraph/paragraph.twig' with { - theme: 'dark', - content: 'The co-branded logo must remain in Storybook and must not be deleted.', - } only %} - {% endset %} - - {% include '@base/item-list/item-list.twig' with { - direction: 'vertical', - items: [ - list_item1, - list_item2, - ], - } only %} -
-
-
-
- diff --git a/components/00-base/mixins/_content.scss b/components/00-base/mixins/_content.scss index 0f912f70..643e9f96 100644 --- a/components/00-base/mixins/_content.scss +++ b/components/00-base/mixins/_content.scss @@ -135,7 +135,7 @@ } } - ul { + ul:not(.ct-item-list) { margin-top: $ct-basic-content-vertical-spacing; margin-bottom: $ct-basic-content-vertical-spacing; padding: 0; @@ -158,7 +158,7 @@ } } - ol { + ol:not(.ct-item-list) { margin-top: $ct-basic-content-vertical-spacing; margin-bottom: $ct-basic-content-vertical-spacing; counter-reset: ordered_counter; @@ -242,7 +242,7 @@ } } - ul { + ul:not(.ct-item-list) { > li { color: $ct-basic-content-light-ul-li-color; @@ -252,7 +252,7 @@ } } - ol { + ol:not(.ct-item-list) { > li { color: $ct-basic-content-light-ol-li-color; @@ -307,7 +307,7 @@ } } - ul { + ul:not(.ct-item-list) { > li { color: $ct-basic-content-dark-ul-li-color; @@ -317,7 +317,7 @@ } } - ol { + ol:not(.ct-item-list) { > li { color: $ct-basic-content-dark-ol-li-color;