Skip to content

Folder Structures

colbytcook edited this page Feb 11, 2022 · 17 revisions

Individual Component

  • __tests__/
    • __snapshots__/ → jest snapshots
      • component.test.js → jest tests
      • component.nightwatch.js → nightwatch tests
    • __fixture__/ → media used in tests
    • component.js
  • src/
    • _component-setting-and-tools.scss
    • _component-sub-template.twig
    • _component-sub-template.scss
    • _component-sub-template.js
    • _component-outside-library.js
    • _component-outside-library.scss
    • component.twig
    • component.scss
    • component.js
  • assets/ → if needed
  • index.js → polyfill, export namespaces, etc.
  • index.scss → points to src folder’s main .scss
  • component.schema.yml
  • package.json
  • README.md
  • CHANGELOG.md
  • TESTING.md

Pattern Lab

  • _patterns/
    • 10-visual-styles/
    • 20-elements/
      • element-name/
        • 00-element-name-docs.twig
        • 05-element-name.twig
        • 10-element-name-prop1.twig
        • 15-element-name-prop2.twig
        • 20-element-name-use-case-*.twig
    • 30-layouts/
      • layout-name/
        • 00-layout-name-docs.twig
        • 05-layout-name.twig
        • 10-layout-name-prop1.twig
        • 15-layout-name-prop2.twig
        • 20-layout-name-use-case-*.twig
    • 40-components/
      • component-name/
        • 00-component-name-docs.twig
        • 05-component-name.twig
        • 10-component-name-prop1.twig
        • 15-component-name-prop2.twig
        • 20-component-name-use-case-*.twig
    • 50-pages/
      • mockup-name/
        • mockup-name-simple-page-name.twig
        • mockup-name-complex-page-name.twig → has variables for passing data
        • mockup-name-complex-page-name~variation-a.json → passes unique data
        • mockup-name-complex-page-name~variation-b.json → passes unique data
    • 60-experiments/ → all the bad apples
    • 999-archive/ → hidden from nav, for out-dated mockups only
    • 999-tests/ → hidden from nav, for VRT tests only

Notes

  1. To avoid collision, all pages should be prefixed with component name or mockup name. Also refer to Component Folder File Naming.
  2. The word docs is reserved for the initial doc page, do not use it to name any other pages or it will not show up in the navigation.

Pacakges

  • packages/
    • build-tools/
    • config/
    • ui/
      • core/
        • bolt-settings
        • bolt-tools
        • bolt-vars
      • global/
        • bolt-utils
        • bolt-generic
        • etc...
      • components/
        • bolt-accordion
        • bolt-popover
        • etc...
      • elements/
        • bolt-button
        • bolt-text-link
        • etc...
      • layouts/
        • bolt-holy-grail
        • bolt-layout
        • etc...

Others

  • examples/
    • using-react/
    • using-pattern-lab/
    • using-drupal/
    • using-static-site/
  • website/
    • src/
      • content/
      • templates/
      • pages/
      • utils/
      • assets/
      • .boltrc
      • package.json
      • composer.json
Clone this wiki locally