├── .all-contributorsrc ├── .browserslistrc ├── .editorconfig ├── .eslintrc.js ├── .github ├── dependabot.yml ├── release-drafter.yml └── workflows │ ├── cd-fonts.yml │ ├── cd-vocabulary.yml │ ├── cd-vue.yml │ ├── ci-build.yml │ ├── ci-lint.yml │ ├── ci-test.yml │ ├── project-automation.yml │ ├── release-drafter.yml │ └── stale.yml ├── .gitignore ├── .storybook ├── main.js └── preview.js ├── CHANGELOG.md ├── LICENSE ├── README.md ├── babel.config.js ├── dist └── css │ ├── vocabulary.css │ └── vocabulary.css.map ├── jest.config.js ├── package-lock.json ├── package.json ├── packages ├── fonts │ └── package.json ├── vocabulary │ └── package.json └── vue-vocabulary │ └── package.json ├── readme_assets └── vocabulary_logo.svg ├── scripts ├── build │ ├── fonts.sh │ ├── vocabulary.sh │ └── vue_vocabulary.sh └── publish │ ├── fonts.sh │ ├── vocabulary.sh │ └── vue-vocabulary.sh ├── src ├── _deprecated │ ├── assets │ │ ├── demo │ │ │ ├── broadway_tower.jpg │ │ │ ├── left_index.png │ │ │ ├── lion_dafrique.jpg │ │ │ ├── show_code.png │ │ │ └── tab_content.png │ │ ├── fonts │ │ │ ├── AccidenzCommons.otf │ │ │ ├── JetBrainsMono-Bold.otf │ │ │ ├── JetBrainsMono-Bold.woff │ │ │ ├── JetBrainsMono-Bold.woff2 │ │ │ ├── JetBrainsMono-Regular.otf │ │ │ ├── JetBrainsMono-Regular.woff │ │ │ ├── JetBrainsMono-Regular.woff2 │ │ │ ├── RobotoCondensed-Bold.otf │ │ │ ├── RobotoCondensed-Bold.woff │ │ │ ├── RobotoCondensed-Bold.woff2 │ │ │ ├── RobotoCondensed-Regular.otf │ │ │ ├── RobotoCondensed-Regular.woff │ │ │ ├── RobotoCondensed-Regular.woff2 │ │ │ ├── SourceSansPro-Bold.otf │ │ │ ├── SourceSansPro-Bold.woff │ │ │ ├── SourceSansPro-Bold.woff2 │ │ │ ├── SourceSansPro-Regular.otf │ │ │ ├── SourceSansPro-Regular.woff │ │ │ ├── SourceSansPro-Regular.woff2 │ │ │ ├── SourceSansPro-SemiBold.otf │ │ │ ├── SourceSansPro-SemiBold.woff │ │ │ └── SourceSansPro-SemiBold.woff2 │ │ ├── icons │ │ │ ├── adjust.svg │ │ │ ├── angle-down.svg │ │ │ ├── angle-left.svg │ │ │ ├── angle-right.svg │ │ │ ├── angle-up.svg │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-up.svg │ │ │ ├── bars.svg │ │ │ ├── bookmark-regular.svg │ │ │ ├── bookmark-solid.svg │ │ │ ├── calendar.svg │ │ │ ├── caret-down.svg │ │ │ ├── caret-left.svg │ │ │ ├── caret-right.svg │ │ │ ├── caret-up.svg │ │ │ ├── cc-by.svg │ │ │ ├── cc-heart-filled.svg │ │ │ ├── cc-heart.svg │ │ │ ├── cc-logo.svg │ │ │ ├── cc-nc-eu.svg │ │ │ ├── cc-nc-jp.svg │ │ │ ├── cc-nc.svg │ │ │ ├── cc-nd.svg │ │ │ ├── cc-pd.svg │ │ │ ├── cc-pdm.svg │ │ │ ├── cc-remix.svg │ │ │ ├── cc-sa.svg │ │ │ ├── cc-sampling-plus.svg │ │ │ ├── cc-sampling.svg │ │ │ ├── cc-share.svg │ │ │ ├── cc-zero.svg │ │ │ ├── check.svg │ │ │ ├── chevron-down.svg │ │ │ ├── chevron-left.svg │ │ │ ├── chevron-right.svg │ │ │ ├── chevron-up.svg │ │ │ ├── circle-filled.svg │ │ │ ├── circle-outline.svg │ │ │ ├── envelope.svg │ │ │ ├── exclamation.svg │ │ │ ├── external-link.svg │ │ │ ├── facebook.svg │ │ │ ├── filter.svg │ │ │ ├── flag.svg │ │ │ ├── github.svg │ │ │ ├── github_corner.svg │ │ │ ├── globe.svg │ │ │ ├── heart.svg │ │ │ ├── info.svg │ │ │ ├── instagram.svg │ │ │ ├── linkedin.svg │ │ │ ├── medium.svg │ │ │ ├── messenger.svg │ │ │ ├── minus.svg │ │ │ ├── pinterest.svg │ │ │ ├── plus.svg │ │ │ ├── question.svg │ │ │ ├── reddit.svg │ │ │ ├── rss.svg │ │ │ ├── search.svg │ │ │ ├── slack.svg │ │ │ ├── sliders.svg │ │ │ ├── sms.svg │ │ │ ├── sort.svg │ │ │ ├── times.svg │ │ │ ├── tumbler.svg │ │ │ ├── twitter.svg │ │ │ └── whatsapp.svg │ │ ├── license_badges │ │ │ ├── big │ │ │ │ ├── by.svg │ │ │ │ ├── by_nc.eu.svg │ │ │ │ ├── by_nc.svg │ │ │ │ ├── by_nc_nd.eu.svg │ │ │ │ ├── by_nc_nd.svg │ │ │ │ ├── by_nc_sa.eu.svg │ │ │ │ ├── by_nc_sa.svg │ │ │ │ ├── by_nd.svg │ │ │ │ ├── by_sa.svg │ │ │ │ ├── cc_zero.svg │ │ │ │ └── publicdomain.svg │ │ │ └── small │ │ │ │ ├── by.svg │ │ │ │ ├── by_nc.svg │ │ │ │ ├── by_nc_nd.svg │ │ │ │ ├── by_nc_sa.svg │ │ │ │ ├── by_nd.svg │ │ │ │ ├── by_sa.svg │ │ │ │ ├── cc_zero.svg │ │ │ │ └── publicdomain.svg │ │ └── logos │ │ │ ├── cc │ │ │ ├── letterheart.svg │ │ │ ├── lettermark.svg │ │ │ └── logomark.svg │ │ │ └── products │ │ │ ├── certificate.svg │ │ │ ├── certificates.svg │ │ │ ├── chooser.svg │ │ │ ├── global_network.svg │ │ │ ├── global_summit.svg │ │ │ ├── legal_database.svg │ │ │ ├── open_source.svg │ │ │ ├── search.svg │ │ │ ├── state_of_the_commons.svg │ │ │ ├── vocabulary.svg │ │ │ └── vocabulary_inverted.svg │ ├── components │ │ ├── breadcrumb │ │ │ ├── breadcrumb.scss │ │ │ └── breadcrumb.stories.mdx │ │ ├── buttons │ │ │ ├── Vue │ │ │ │ ├── DonateButton.stories.js │ │ │ │ ├── DonateButton.vue │ │ │ │ ├── VButton.stories.js │ │ │ │ └── VButton.vue │ │ │ ├── button.scss │ │ │ └── buttons.stories.mdx │ │ ├── cards │ │ │ ├── card.scss │ │ │ └── cards.stories.mdx │ │ ├── footer │ │ │ ├── footer.scss │ │ │ └── footer.stories.mdx │ │ ├── form │ │ │ ├── Vue │ │ │ │ ├── VCheckbox.stories.js │ │ │ │ ├── VCheckbox.vue │ │ │ │ ├── VRadio.stories.js │ │ │ │ └── VRadio.vue │ │ │ ├── checkbox.stories.mdx │ │ │ ├── form.scss │ │ │ ├── input.stories.mdx │ │ │ ├── radio.stories.mdx │ │ │ ├── select.stories.mdx │ │ │ └── textarea.stories.mdx │ │ ├── github_corner │ │ │ ├── github_corner.scss │ │ │ └── github_corner.stories.mdx │ │ ├── global_header │ │ │ ├── global_header.scss │ │ │ └── global_header.stories.mdx │ │ ├── header │ │ │ ├── Vue │ │ │ │ ├── ChooserLogo.vue │ │ │ │ ├── NavDropdown.vue │ │ │ │ ├── NavItem.vue │ │ │ │ ├── VHeader.stories.js │ │ │ │ └── VHeader.vue │ │ │ ├── header.scss │ │ │ └── header.stories.mdx │ │ ├── icons │ │ │ ├── icons.js │ │ │ └── icons.stories.mdx │ │ ├── image │ │ │ ├── image.scss │ │ │ └── image.stories.mdx │ │ ├── locale │ │ │ ├── Vue │ │ │ │ ├── VLocale.stories.js │ │ │ │ └── VLocale.vue │ │ │ ├── locale.scss │ │ │ └── locale.stories.mdx │ │ ├── modal │ │ │ ├── Vue │ │ │ │ ├── AppModal.stories.js │ │ │ │ └── AppModal.vue │ │ │ ├── modal.scss │ │ │ └── modal.stories.mdx │ │ ├── notification │ │ │ ├── notification.scss │ │ │ └── notification.stories.mdx │ │ ├── pagination │ │ │ ├── pagination.scss │ │ │ └── pagination.stories.mdx │ │ ├── profile_image │ │ │ ├── profile_image.scss │ │ │ └── profile_image.stories.mdx │ │ ├── sidebar_menu │ │ │ ├── sidebar_menu.scss │ │ │ └── sidebar_menu.stories.mdx │ │ ├── table │ │ │ ├── table.scss │ │ │ └── tables.stories.mdx │ │ ├── table_of_contents │ │ │ ├── table_of_contents.scss │ │ │ └── table_of_contents.stories.mdx │ │ ├── table_of_progress │ │ │ ├── table_of_progress.scss │ │ │ └── table_of_progress.stories.mdx │ │ └── tabs │ │ │ ├── Vue │ │ │ ├── Tab.vue │ │ │ ├── Tabs.stories.js │ │ │ └── Tabs.vue │ │ │ ├── tabs.scss │ │ │ └── tabs.stories.mdx │ ├── fonts.js │ ├── mixins │ │ ├── branded.js │ │ ├── circleable.js │ │ ├── colored.js │ │ ├── indicating.js │ │ ├── invertible.js │ │ ├── simplified.js │ │ └── sized.js │ ├── scripts │ │ ├── assets.js │ │ ├── constants.js │ │ ├── global_header.js │ │ ├── render.js │ │ └── vocabulary.js │ ├── stories │ │ ├── fonts │ │ │ ├── accidenz_commons.stories.mdx │ │ │ ├── jetbrains_mono.stories.mdx │ │ │ ├── roboto_condensed.stories.mdx │ │ │ └── source_sans_pro.stories.mdx │ │ ├── helpers.js │ │ ├── meta │ │ │ ├── contribution.stories.mdx │ │ │ ├── gettingstarted.stories.mdx │ │ │ ├── overview.stories.mdx │ │ │ ├── structure.stories.mdx │ │ │ ├── usage.stories.mdx │ │ │ ├── welcome.stories.mdx │ │ │ └── wip.stories.mdx │ │ └── vocabulary │ │ │ ├── color.stories.mdx │ │ │ ├── combined_header.stories.mdx │ │ │ ├── grid.stories.mdx │ │ │ ├── icon_font.stories.mdx │ │ │ ├── icons.stories.mdx │ │ │ ├── license_badge.stories.mdx │ │ │ ├── main_logos.stories.mdx │ │ │ ├── product_logos.stories.mdx │ │ │ ├── spacing.stories.mdx │ │ │ └── typography.stories.mdx │ ├── styles │ │ ├── fonts │ │ │ ├── _index.scss │ │ │ ├── cc_accidenz_commons.scss │ │ │ ├── font_face.scss │ │ │ ├── jetbrains_mono.scss │ │ │ ├── roboto_condensed.scss │ │ │ └── source_sans_pro.scss │ │ └── vocabulary │ │ │ ├── _index.scss │ │ │ ├── color.scss │ │ │ ├── color_overrides.scss │ │ │ ├── layout.scss │ │ │ ├── mediaQueries.scss │ │ │ ├── spacing.scss │ │ │ ├── spacing_overrides.scss │ │ │ ├── typography.scss │ │ │ └── typography_overrides.scss │ ├── utils │ │ ├── SlotRenderer │ │ │ ├── SlotRenderer.md │ │ │ └── SlotRenderer.vue │ │ ├── addDescription.js │ │ ├── addSource.js │ │ ├── prettier │ │ │ └── prettier.md │ │ └── values.js │ ├── vocabulary.js │ └── vue_vocabulary.js ├── assets │ ├── cclogo-shared-image.jpg │ ├── demo │ │ ├── broadway_tower.jpg │ │ ├── left_index.png │ │ ├── lion_dafrique.jpg │ │ ├── show_code.png │ │ └── tab_content.png │ ├── github_corner.svg │ ├── icons │ │ └── favicon.png │ ├── license_badges │ │ ├── big │ │ │ ├── by.svg │ │ │ ├── by_nc.eu.svg │ │ │ ├── by_nc.svg │ │ │ ├── by_nc_nd.eu.svg │ │ │ ├── by_nc_nd.svg │ │ │ ├── by_nc_sa.eu.svg │ │ │ ├── by_nc_sa.svg │ │ │ ├── by_nd.svg │ │ │ ├── by_sa.svg │ │ │ ├── cc_zero.svg │ │ │ └── publicdomain.svg │ │ └── small │ │ │ ├── by.svg │ │ │ ├── by_nc.svg │ │ │ ├── by_nc_nd.svg │ │ │ ├── by_nc_sa.svg │ │ │ ├── by_nd.svg │ │ │ ├── by_sa.svg │ │ │ ├── cc_zero.svg │ │ │ └── publicdomain.svg │ ├── logos │ │ ├── cc │ │ │ ├── letterheart.svg │ │ │ ├── lettermark.svg │ │ │ └── logomark.svg │ │ └── products │ │ │ ├── certificate.svg │ │ │ ├── certificates.svg │ │ │ ├── chooser.svg │ │ │ ├── global_network.svg │ │ │ ├── global_summit.svg │ │ │ ├── legal_database.svg │ │ │ ├── open_source.svg │ │ │ ├── search.svg │ │ │ ├── state_of_the_commons.svg │ │ │ └── vocabulary.svg │ ├── puff.svg │ └── titlecard.png ├── fonts │ ├── assets │ │ ├── cclogo-shared-image.jpg │ │ ├── github_corner.svg │ │ ├── guide │ │ │ ├── app_button.png │ │ │ ├── directory.png │ │ │ ├── flag.png │ │ │ ├── generate_font.png │ │ │ ├── generate_json.png │ │ │ ├── import_icons.png │ │ │ ├── import_project.png │ │ │ ├── import_to_set.png │ │ │ ├── projects_untitled.png │ │ │ ├── projects_vocabulary.png │ │ │ ├── selection.png │ │ │ ├── toolbar.png │ │ │ ├── untitled_project.png │ │ │ └── vocabulary_icons.png │ │ ├── icons │ │ │ └── favicon.png │ │ ├── logos │ │ │ ├── fonts.svg │ │ │ └── fonts_inverted.svg │ │ ├── svg │ │ │ ├── arrows │ │ │ │ ├── angle-down.svg │ │ │ │ ├── angle-left.svg │ │ │ │ ├── angle-right.svg │ │ │ │ ├── angle-up.svg │ │ │ │ ├── arrow-down.svg │ │ │ │ ├── arrow-up.svg │ │ │ │ ├── caret-down.svg │ │ │ │ ├── caret-left.svg │ │ │ │ ├── caret-right.svg │ │ │ │ ├── caret-up.svg │ │ │ │ ├── chevron-down.svg │ │ │ │ ├── chevron-left.svg │ │ │ │ ├── chevron-right.svg │ │ │ │ └── chevron-up.svg │ │ │ ├── cc │ │ │ │ ├── cc-by.svg │ │ │ │ ├── cc-heart-filled.svg │ │ │ │ ├── cc-heart.svg │ │ │ │ ├── cc-logo.svg │ │ │ │ ├── cc-nc-eu.svg │ │ │ │ ├── cc-nc-jp.svg │ │ │ │ ├── cc-nc.svg │ │ │ │ ├── cc-nd.svg │ │ │ │ ├── cc-pd.svg │ │ │ │ ├── cc-pdm.svg │ │ │ │ ├── cc-remix.svg │ │ │ │ ├── cc-sa.svg │ │ │ │ ├── cc-sampling-plus.svg │ │ │ │ ├── cc-sampling.svg │ │ │ │ ├── cc-share.svg │ │ │ │ └── cc-zero.svg │ │ │ ├── index.js │ │ │ ├── social-media │ │ │ │ ├── facebook.svg │ │ │ │ ├── github.svg │ │ │ │ ├── instagram.svg │ │ │ │ ├── linkedin.svg │ │ │ │ ├── medium.svg │ │ │ │ ├── messenger.svg │ │ │ │ ├── pinterest.svg │ │ │ │ ├── reddit.svg │ │ │ │ ├── rss.svg │ │ │ │ ├── slack.svg │ │ │ │ ├── sms.svg │ │ │ │ ├── tumbler.svg │ │ │ │ ├── twitter.svg │ │ │ │ └── whatsapp.svg │ │ │ └── symbols │ │ │ │ ├── adjust.svg │ │ │ │ ├── bars.svg │ │ │ │ ├── bookmark-regular.svg │ │ │ │ ├── bookmark-solid.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── check.svg │ │ │ │ ├── circle-filled.svg │ │ │ │ ├── circle-outline.svg │ │ │ │ ├── envelope.svg │ │ │ │ ├── exclamation.svg │ │ │ │ ├── external-link.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── flag.svg │ │ │ │ ├── globe.svg │ │ │ │ ├── heart.svg │ │ │ │ ├── info.svg │ │ │ │ ├── minus.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── question.svg │ │ │ │ ├── search.svg │ │ │ │ ├── sliders.svg │ │ │ │ ├── sort.svg │ │ │ │ └── times.svg │ │ └── titlecard.png │ ├── fonts │ │ ├── CCAccidenzCommons-medium.otf │ │ ├── JetBrainsMono-Bold.otf │ │ ├── JetBrainsMono-Bold.woff │ │ ├── JetBrainsMono-Bold.woff2 │ │ ├── JetBrainsMono-Regular.otf │ │ ├── JetBrainsMono-Regular.woff │ │ ├── JetBrainsMono-Regular.woff2 │ │ ├── RobotoCondensed-Bold.otf │ │ ├── RobotoCondensed-Bold.woff │ │ ├── RobotoCondensed-Bold.woff2 │ │ ├── RobotoCondensed-Regular.otf │ │ ├── RobotoCondensed-Regular.woff │ │ ├── RobotoCondensed-Regular.woff2 │ │ ├── SourceSansPro-Bold.otf │ │ ├── SourceSansPro-Bold.woff │ │ ├── SourceSansPro-Bold.woff2 │ │ ├── SourceSansPro-Regular.otf │ │ ├── SourceSansPro-Regular.woff │ │ ├── SourceSansPro-Regular.woff2 │ │ ├── SourceSansPro-SemiBold.otf │ │ ├── SourceSansPro-SemiBold.woff │ │ ├── SourceSansPro-SemiBold.woff2 │ │ ├── VocabularyIcons.json │ │ ├── VocabularyIcons.ttf │ │ └── VocabularyIcons.woff │ ├── index.js │ ├── scripts │ │ ├── accidenz_commons.js │ │ ├── jetbrains_mono.js │ │ ├── roboto_condensed.js │ │ ├── source_sans_pro.js │ │ └── vocabulary_icons.js │ ├── stories │ │ ├── accidenz_commons.stories.mdx │ │ ├── helpers.js │ │ ├── icon-gallery │ │ │ ├── icon-controls.jsx │ │ │ ├── icon-item.jsx │ │ │ ├── icon-set.jsx │ │ │ ├── icon-wrapper.jsx │ │ │ ├── index.css │ │ │ └── index.js │ │ ├── jetbrains_mono.stories.mdx │ │ ├── roboto_condensed.stories.mdx │ │ ├── source_sans_pro.stories.mdx │ │ ├── vocabulary_icon_font.stories.mdx │ │ └── vocabulary_svg_icons.stories.mdx │ └── styles │ │ ├── accidenz_commons.scss │ │ ├── font_face.scss │ │ ├── jetbrains_mono.scss │ │ ├── roboto_condensed.scss │ │ ├── source_sans_pro.scss │ │ └── vocabulary_icons.scss ├── index.js ├── scripts │ ├── assets.js │ ├── constants.js │ ├── global_header.js │ ├── render.js │ └── vocabulary.js ├── scss │ ├── breadcrumb.scss │ ├── button.scss │ ├── card.scss │ ├── color.scss │ ├── color_overrides.scss │ ├── footer.scss │ ├── form.scss │ ├── github_corner.scss │ ├── global_header.scss │ ├── header.scss │ ├── image.scss │ ├── layout.scss │ ├── locale.scss │ ├── modal.scss │ ├── notification.scss │ ├── pagination.scss │ ├── profile_image.scss │ ├── sidebar_menu.scss │ ├── spacing.scss │ ├── spacing_overrides.scss │ ├── table.scss │ ├── table_of_contents.scss │ ├── table_of_progress.scss │ ├── tabs.scss │ ├── typography.scss │ ├── typography_overrides.scss │ ├── vendor │ │ └── bulma │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bulma.sass │ │ │ ├── css │ │ │ ├── bulma-rtl.css │ │ │ ├── bulma-rtl.css.map │ │ │ ├── bulma-rtl.min.css │ │ │ ├── bulma.css │ │ │ ├── bulma.css.map │ │ │ └── bulma.min.css │ │ │ ├── package.json │ │ │ └── sass │ │ │ ├── base │ │ │ ├── _all.sass │ │ │ ├── animations.sass │ │ │ ├── generic.sass │ │ │ ├── helpers.sass │ │ │ └── minireset.sass │ │ │ ├── components │ │ │ ├── _all.sass │ │ │ ├── breadcrumb.sass │ │ │ ├── card.sass │ │ │ ├── dropdown.sass │ │ │ ├── level.sass │ │ │ ├── media.sass │ │ │ ├── menu.sass │ │ │ ├── message.sass │ │ │ ├── modal.sass │ │ │ ├── navbar.sass │ │ │ ├── pagination.sass │ │ │ ├── panel.sass │ │ │ └── tabs.sass │ │ │ ├── elements │ │ │ ├── _all.sass │ │ │ ├── box.sass │ │ │ ├── button.sass │ │ │ ├── container.sass │ │ │ ├── content.sass │ │ │ ├── form.sass │ │ │ ├── icon.sass │ │ │ ├── image.sass │ │ │ ├── notification.sass │ │ │ ├── other.sass │ │ │ ├── progress.sass │ │ │ ├── table.sass │ │ │ ├── tag.sass │ │ │ └── title.sass │ │ │ ├── form │ │ │ ├── _all.sass │ │ │ ├── checkbox-radio.sass │ │ │ ├── file.sass │ │ │ ├── input-textarea.sass │ │ │ ├── select.sass │ │ │ ├── shared.sass │ │ │ └── tools.sass │ │ │ ├── grid │ │ │ ├── _all.sass │ │ │ ├── columns.sass │ │ │ └── tiles.sass │ │ │ ├── helpers │ │ │ ├── _all.sass │ │ │ ├── color.sass │ │ │ ├── flexbox.sass │ │ │ ├── float.sass │ │ │ ├── other.sass │ │ │ ├── overflow.sass │ │ │ ├── position.sass │ │ │ ├── spacing.sass │ │ │ ├── typography.sass │ │ │ └── visibility.sass │ │ │ ├── layout │ │ │ ├── _all.sass │ │ │ ├── footer.sass │ │ │ ├── hero.sass │ │ │ └── section.sass │ │ │ └── utilities │ │ │ ├── _all.sass │ │ │ ├── animations.sass │ │ │ ├── controls.sass │ │ │ ├── derived-variables.sass │ │ │ ├── extends.sass │ │ │ ├── functions.sass │ │ │ ├── initial-variables.sass │ │ │ └── mixins.sass │ └── vocabulary.scss └── stories │ ├── breadcrumb.stories.mdx │ ├── buttons.stories.mdx │ ├── cards.stories.mdx │ ├── checkbox.stories.mdx │ ├── color.stories.mdx │ ├── combined_header.stories.mdx │ ├── footer.stories.mdx │ ├── github_corner.stories.mdx │ ├── global_header.stories.mdx │ ├── grid.stories.mdx │ ├── header.stories.mdx │ ├── helpers.js │ ├── icon_font.stories.mdx │ ├── icons.stories.mdx │ ├── image.stories.mdx │ ├── input.stories.mdx │ ├── license_badge.stories.mdx │ ├── locale.stories.mdx │ ├── main_logos.stories.mdx │ ├── modal.stories.mdx │ ├── notification.stories.mdx │ ├── pagination.stories.mdx │ ├── product_logos.stories.mdx │ ├── profile_image.stories.mdx │ ├── radio.stories.mdx │ ├── select.stories.mdx │ ├── sidebar_menu.stories.mdx │ ├── spacing.stories.mdx │ ├── table_of_contents.stories.mdx │ ├── table_of_progress.stories.mdx │ ├── tables.stories.mdx │ ├── tabs.stories.mdx │ ├── textarea.stories.mdx │ └── typography.stories.mdx └── tests └── unit ├── VCheckbox.spec.js └── __snapshots__ └── VCheckbox.spec.js.snap /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js, jsx, ts, tsx, vue, styl, md}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | 7 | [*.md] 8 | trim_trailing_whitespace = false 9 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | jest: true, 6 | }, 7 | plugins: ["jest"], 8 | extends: [ 9 | "plugin:vue/essential", 10 | "@vue/airbnb", 11 | "eslint:recommended", 12 | "prettier", 13 | ], 14 | parserOptions: { 15 | parser: "babel-eslint", 16 | }, 17 | rules: { 18 | "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", 19 | "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", 20 | "import/prefer-default-export": "off", 21 | "jest/no-disabled-tests": "warn", 22 | "jest/no-focused-tests": "error", 23 | "jest/no-identical-title": "error", 24 | "jest/prefer-to-have-length": "warn", 25 | "jest/valid-expect": "error", 26 | }, 27 | }; 28 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | ################################# 2 | # Dependabot Configuration File # 3 | ################################# 4 | 5 | # This is the current version of the GitHub-native Dependabot 6 | version: 2 7 | 8 | updates: 9 | # Enable version updates for npm 10 | - package-ecosystem: "npm" 11 | # Look for `package.json` and `lock` files in the `root` directory 12 | directory: "/" 13 | # Check for updates once a month 14 | schedule: 15 | interval: "monthly" 16 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | # Configuration for the release-drafter action 2 | # See docs here: https://github.com/marketplace/actions/release-drafter 3 | name-template: "v$RESOLVED_VERSION" 4 | tag-template: "v$RESOLVED_VERSION" 5 | categories: 6 | - title: "New Features" 7 | label: "⭐ goal: addition" 8 | - title: "Improvements" 9 | label: "✨ goal: improvement" 10 | - title: "Bug Fixes" 11 | label: "🛠 goal: fix" 12 | # Exclude dependabot PRs from release notes 13 | exclude-labels: 14 | - "dependencies" 15 | change-template: "- $TITLE: #$NUMBER by @$AUTHOR" 16 | version-resolver: 17 | major: 18 | labels: 19 | - "major" 20 | minor: 21 | labels: 22 | - "minor" 23 | patch: 24 | labels: 25 | - "patch" 26 | default: patch 27 | template: | 28 | $CHANGES 29 | 30 | ## Credits 31 | 32 | Special thanks to $CONTRIBUTORS for their contributions! 33 | 34 | ## See an issue? 35 | 36 | Does anything look wrong in this release? Please [report a bug](https://github.com/creativecommons/vocabulary/issues/new?labels=bug%2C+awaiting+triage&template=bug_report.md). 37 | -------------------------------------------------------------------------------- /.github/workflows/cd-fonts.yml: -------------------------------------------------------------------------------- 1 | name: CD for fonts package 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | env: 9 | PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true 10 | 11 | jobs: 12 | deploy_npm: 13 | defaults: 14 | run: 15 | working-directory: "./" 16 | name: Deploy to npm 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v2 20 | 21 | - name: Setup Node.js 22 | uses: actions/setup-node@v1 23 | with: 24 | node-version: 12 25 | registry-url: https://registry.npmjs.org 26 | 27 | - name: Install dependencies 28 | run: npm install --no-audit 29 | 30 | - name: Publish package 31 | run: bash scripts/build/fonts.sh 32 | env: 33 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 34 | 35 | - name: Deploy 36 | run: bash scripts/publish/fonts.sh 37 | env: 38 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 39 | 40 | - name: Repository Dispatch 41 | uses: peter-evans/repository-dispatch@v1 42 | with: 43 | token: ${{ secrets.ADMIN_GITHUB_TOKEN }} 44 | repository: creativecommons/vocabulary 45 | event-type: fonts-built 46 | client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}' 47 | -------------------------------------------------------------------------------- /.github/workflows/cd-vocabulary.yml: -------------------------------------------------------------------------------- 1 | name: CD for vocabulary package 2 | 3 | on: 4 | repository_dispatch: 5 | types: [fonts-built] 6 | 7 | env: 8 | PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true 9 | 10 | jobs: 11 | deploy_npm: 12 | defaults: 13 | run: 14 | working-directory: "./" 15 | name: Deploy to npm 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Setup Node.js 21 | uses: actions/setup-node@v1 22 | with: 23 | node-version: 12 24 | registry-url: https://registry.npmjs.org 25 | 26 | - name: Install dependencies 27 | run: npm install --no-audit 28 | 29 | - name: Publish package 30 | run: bash scripts/build/vocabulary.sh 31 | env: 32 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 33 | 34 | - name: Deploy 35 | run: bash scripts/publish/vocabulary.sh 36 | env: 37 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 38 | 39 | - name: Repository Dispatch 40 | uses: peter-evans/repository-dispatch@v1 41 | with: 42 | token: ${{ secrets.ADMIN_GITHUB_TOKEN }} 43 | repository: creativecommons/vocabulary 44 | event-type: vocabulary-built 45 | client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}' 46 | -------------------------------------------------------------------------------- /.github/workflows/cd-vue.yml: -------------------------------------------------------------------------------- 1 | name: CD for vue package 2 | 3 | on: 4 | repository_dispatch: 5 | types: [vocabulary-built] 6 | 7 | env: 8 | PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true 9 | 10 | jobs: 11 | deploy_npm: 12 | defaults: 13 | run: 14 | working-directory: "./" 15 | name: Deploy to npm 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Setup Node.js 21 | uses: actions/setup-node@v1 22 | with: 23 | node-version: 12 24 | registry-url: https://registry.npmjs.org 25 | 26 | - name: Install dependencies 27 | run: npm install --no-audit 28 | 29 | - name: Publish package 30 | run: bash scripts/build/vue_vocabulary.sh 31 | env: 32 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 33 | 34 | - name: Deploy 35 | run: bash scripts/publish/vue-vocabulary.sh 36 | env: 37 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 38 | -------------------------------------------------------------------------------- /.github/workflows/ci-build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | env: 11 | CI: true 12 | PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true 13 | 14 | jobs: 15 | build: 16 | name: Build 17 | defaults: 18 | run: 19 | working-directory: "./" 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | 25 | - name: build 26 | uses: actions/setup-node@v1 27 | with: 28 | node-version: "12.16.1" 29 | 30 | - id: cache-node-modules 31 | name: Cache Node.js modules 32 | uses: actions/cache@v1 33 | with: 34 | path: ~/.npm # npm caches files in ~/.npm 35 | key: node-${{ hashFiles('**/package-lock.json') }} 36 | 37 | - name: Install dependencies 38 | run: npm install --prefer-offline --no-audit 39 | 40 | - name: Run build 41 | run: npm run build:storybook 42 | -------------------------------------------------------------------------------- /.github/workflows/ci-lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | env: 11 | CI: true 12 | PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true 13 | 14 | jobs: 15 | lint: 16 | name: Lint 17 | defaults: 18 | run: 19 | working-directory: "./" 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | 25 | - name: Setup Node.js 26 | uses: actions/setup-node@v1 27 | with: 28 | node-version: "12.16.1" 29 | 30 | - id: cache-node-modules 31 | name: Cache Node.js modules 32 | uses: actions/cache@v1 33 | with: 34 | path: ~/.npm # npm caches files in ~/.npm 35 | key: node-${{ hashFiles('**/package-lock.json') }} 36 | 37 | - name: Install dependencies 38 | run: npm install --prefer-offline --no-audit 39 | 40 | - name: Run lint 41 | run: npm run lint 42 | -------------------------------------------------------------------------------- /.github/workflows/ci-test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | env: 11 | CI: true 12 | PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true 13 | 14 | jobs: 15 | test: 16 | name: Test 17 | defaults: 18 | run: 19 | working-directory: "./" 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | 25 | - name: Setup Node.js 26 | uses: actions/setup-node@v1 27 | with: 28 | node-version: "12.16.1" 29 | 30 | - id: cache-node-modules 31 | name: Cache Node.js modules 32 | uses: actions/cache@v1 33 | with: 34 | path: ~/.npm # npm caches files in ~/.npm 35 | key: node-${{ hashFiles('**/package-lock.json') }} 36 | 37 | - name: Install dependencies 38 | run: npm install --prefer-offline --no-audit 39 | 40 | - name: Run tests 41 | run: npm run test:unit 42 | 43 | - name: Upload coverage to Codecov 44 | uses: codecov/codecov-action@v1 45 | -------------------------------------------------------------------------------- /.github/workflows/project-automation.yml: -------------------------------------------------------------------------------- 1 | name: "Project Automation" 2 | on: 3 | issues: 4 | types: [opened] 5 | pull_request: 6 | types: [opened] 7 | jobs: 8 | join_issue_pr_to_project: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: "Automate adding issues" 12 | uses: docker://takanabe/github-actions-automate-projects:v0.0.1 13 | if: github.event_name == 'issues' 14 | env: 15 | GITHUB_TOKEN: ${{ secrets.ADMIN_GITHUB_TOKEN }} 16 | GITHUB_PROJECT_URL: https://github.com/orgs/creativecommons/projects/13 17 | GITHUB_PROJECT_COLUMN_NAME: "To Triage" 18 | - name: "Automate adding PRs" 19 | uses: docker://takanabe/github-actions-automate-projects:v0.0.1 20 | if: github.event_name == 'pull_request' 21 | continue-on-error: true 22 | env: 23 | GITHUB_TOKEN: ${{ secrets.ADMIN_GITHUB_TOKEN }} 24 | GITHUB_PROJECT_URL: https://github.com/orgs/creativecommons/projects/13 25 | GITHUB_PROJECT_COLUMN_NAME: "In Progress" 26 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Release Drafter 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | update_release_draft: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: release-drafter/release-drafter@v5 13 | env: 14 | GITHUB_TOKEN: ${{ secrets.ADMIN_GITHUB_TOKEN }} 15 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. 2 | # 3 | # You can adjust the behavior by modifying this file. 4 | # For more information, see: 5 | # https://github.com/actions/stale 6 | name: Mark stale issues and pull requests 7 | 8 | on: 9 | schedule: 10 | - cron: "29 7 * * *" 11 | 12 | jobs: 13 | stale: 14 | runs-on: ubuntu-latest 15 | permissions: 16 | issues: write 17 | pull-requests: write 18 | 19 | steps: 20 | - uses: actions/stale@v3 21 | with: 22 | repo-token: ${{ secrets.GITHUB_TOKEN }} 23 | stale-issue-message: "Marking as stale, since there is no recent activity." 24 | stale-pr-message: "Marking as stale, since there is no recent activity." 25 | stale-issue-label: "no-recent-activity" 26 | stale-pr-label: "no-recent-activity" 27 | days-before-close: -1 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /docs 4 | 5 | /build 6 | /.cache 7 | __diff_output__ 8 | 9 | # local env files 10 | .env.local 11 | .env.*.local 12 | env_vars 13 | 14 | # Yarn 15 | yarn.lock 16 | 17 | # Log files 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | 22 | # Editor directories and files 23 | .idea 24 | .vscode 25 | *.suo 26 | *.ntvs* 27 | *.njsproj 28 | *.sln 29 | *.sw? 30 | 31 | #coverage 32 | coverage 33 | -------------------------------------------------------------------------------- /.storybook/main.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | stories: ["../src/**/*.stories.@(mdx|js|jsx|ts|tsx)"], 5 | addons: [ 6 | "@storybook/preset-scss", 7 | "@storybook/addon-links", 8 | "@storybook/addon-essentials", 9 | ], 10 | webpackFinal: (config) => { 11 | // eslint-disable-next-line no-param-reassign 12 | config.resolve.alias["@"] = path.resolve(__dirname, "..", "src"); 13 | return config; 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /.storybook/preview.js: -------------------------------------------------------------------------------- 1 | import "@/styles/vocabulary/_index.scss"; 2 | 3 | export const parameters = { 4 | actions: { argTypesRegex: "^on[A-Z].*" }, 5 | controls: { 6 | matchers: { 7 | color: /(background|color)$/i, 8 | date: /Date$/, 9 | }, 10 | }, 11 | options: { 12 | storySort: { 13 | order: [ 14 | "Hello", 15 | [ 16 | "WIP", 17 | "Introduction", 18 | "Getting Started", 19 | "Overview", 20 | "Structure", 21 | "Usage", 22 | "Contribution", 23 | ], 24 | "Fonts", 25 | [ 26 | "CC Accidenz Commons", 27 | "Roboto Condensed", 28 | "Source Sans Pro", 29 | "JetBrains Mono", 30 | "Vocabulary Icons", 31 | ], 32 | ], 33 | }, 34 | }, 35 | }; 36 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | This repo uses GitHub releases to manage versions. You can view a list of our releases [here](https://github.com/cc-archive/vocabulary-legacy/releases). 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Creative Commons 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/cli-plugin-babel/preset"], 3 | }; 4 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: '@vue/cli-plugin-unit-jest', 3 | collectCoverage: true, 4 | collectCoverageFrom: [ 5 | 'src/components/**/*.{js,vue}', 6 | ], 7 | }; 8 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@creativecommons/vocabulary-core", 3 | "version": "2.0.0-alpha", 4 | "lockfileVersion": 1 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@creativecommons/vocabulary-core", 3 | "version": "2.0.0-alpha", 4 | "description": "A cohesive design system to unite Creative Common's web facing products", 5 | "author": "Creative Commons (https://creativecommons.org)", 6 | "files": [ 7 | "dist/css/" 8 | ], 9 | "main": "dist/css/vocabulary.css", 10 | "style": "dist/css/vocabulary.css", 11 | "unpkg": "dist/css/vocabulary.css", 12 | "bugs": "https://github.com/creativecommons/vocabulary/issues/", 13 | "funding": [ 14 | { 15 | "type": "github", 16 | "url": "https://github.com/sponsors/creativecommons" 17 | }, 18 | { 19 | "type": "donations", 20 | "url": "https://creativecommons.org/donate" 21 | } 22 | ], 23 | "homepage": "https://opensource.creativecommons.org/vocabulary", 24 | "keywords": [ 25 | "ui", 26 | "ux", 27 | "design", 28 | "design system" 29 | ], 30 | "license": "MIT", 31 | "repository": { 32 | "type": "git", 33 | "url": "https://github.com/creativecommons/vocabulary.git" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/fonts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@creativecommons/fonts", 3 | "version": "2020.11.3", 4 | "description": "Typefaces that lend personality to the web facing Creative Commons", 5 | "author": "Creative Commons (https://creativecommons.org)" 6 | } 7 | -------------------------------------------------------------------------------- /packages/vocabulary/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@creativecommons/vocabulary", 3 | "version": "2020.11.3", 4 | "description": "A cohesive design system to unite the web facing Creative Commons", 5 | "author": "Creative Commons (https://creativecommons.org)" 6 | } 7 | -------------------------------------------------------------------------------- /packages/vue-vocabulary/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@creativecommons/vue-vocabulary", 3 | "version": "2020.11.3", 4 | "description": "Vue components implementing a cohesive design system to unite the web facing Creative Commons", 5 | "author": "Creative Commons (https://creativecommons.org)" 6 | } 7 | -------------------------------------------------------------------------------- /scripts/build/fonts.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Run build 4 | ./node_modules/.bin/vue-cli-service build --target lib --name fonts --dest ./dist/fonts --entry ./src/fonts.js 5 | 6 | echo -n "Copying meta files..." 7 | cp README.md dist/fonts 8 | cp LICENSE dist/fonts 9 | cp packages/fonts/package.json dist/fonts/package.json 10 | echo "done!" 11 | 12 | echo -n "Removing superfluous files..." 13 | rm -rf dist/fonts/*.js dist/fonts/*.map dist/fonts/*.html 14 | echo "done!" 15 | -------------------------------------------------------------------------------- /scripts/build/vocabulary.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Run build 4 | ./node_modules/.bin/vue-cli-service build --target lib --name vocabulary --dest ./dist/vocabulary --entry ./src/vocabulary.js 5 | 6 | echo -n "Copying meta files..." 7 | cp README.md dist/vocabulary 8 | cp LICENSE dist/vocabulary 9 | cp packages/vocabulary/package.json dist/vocabulary/package.json 10 | echo "done!" 11 | 12 | echo -n "Removing superfluous files..." 13 | rm -rf dist/vocabulary/*.js dist/vocabulary/*.map dist/vocabulary/*.html 14 | echo "done!" 15 | -------------------------------------------------------------------------------- /scripts/build/vue_vocabulary.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Run build 4 | ./node_modules/.bin/vue-cli-service build --target lib --name vue-vocabulary --dest ./dist/vue-vocabulary --entry ./src/vue_vocabulary.js 5 | 6 | echo -n "Copying meta files..." 7 | cp README.md dist/vue-vocabulary 8 | cp LICENSE dist/vue-vocabulary 9 | cp packages/vue-vocabulary/package.json dist/vue-vocabulary/package.json 10 | echo "done!" 11 | 12 | echo -n "Removing superfluous files..." 13 | rm -rf dist/vue-vocabulary/*.html 14 | echo "done!" 15 | -------------------------------------------------------------------------------- /scripts/publish/fonts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o errtrace 5 | set -o nounset 6 | 7 | trap '_es=${?}; 8 | _lo=${LINENO}; 9 | _co=${BASH_COMMAND}; 10 | echo "${0}: line ${_lo}: \"${_co}\" exited with a status of ${_es}"; 11 | exit ${_es}' ERR 12 | 13 | npm run build:storybook 14 | cp package.json dist/ 15 | cp README.md dist/ 16 | sed -i -e 's/say, fonts/here, fonts/' dist/README.md 17 | cp LICENSE dist/ 18 | 19 | cd dist 20 | npm publish --access public 21 | -------------------------------------------------------------------------------- /scripts/publish/vocabulary.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o errtrace 5 | set -o nounset 6 | 7 | trap '_es=${?}; 8 | _lo=${LINENO}; 9 | _co=${BASH_COMMAND}; 10 | echo "${0}: line ${_lo}: \"${_co}\" exited with a status of ${_es}"; 11 | exit ${_es}' ERR 12 | 13 | npm run build:storybook 14 | cp package.json dist/ 15 | cp README.md dist/ 16 | sed -i -e 's/say, fonts/here, vocabulary/' -e 's/cd packages\/fonts/cd packages\/vocabulary/' dist/README.md 17 | cp LICENSE dist/ 18 | 19 | cd dist 20 | npm publish --access public 21 | -------------------------------------------------------------------------------- /scripts/publish/vue-vocabulary.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o errtrace 5 | set -o nounset 6 | 7 | trap '_es=${?}; 8 | _lo=${LINENO}; 9 | _co=${BASH_COMMAND}; 10 | echo "${0}: line ${_lo}: \"${_co}\" exited with a status of ${_es}"; 11 | exit ${_es}' ERR 12 | 13 | npm run build:storybook 14 | cp package.json dist/ 15 | cp README.md dist/ 16 | sed -i -e 's/say, fonts/here, vue-vocabulary/' -e 's/cd packages\/fonts/cd packages\/vue-vocabulary/' dist/README.md 17 | cp LICENSE dist/ 18 | 19 | cd dist 20 | npm publish --access public 21 | -------------------------------------------------------------------------------- /src/_deprecated/assets/demo/broadway_tower.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/demo/broadway_tower.jpg -------------------------------------------------------------------------------- /src/_deprecated/assets/demo/left_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/demo/left_index.png -------------------------------------------------------------------------------- /src/_deprecated/assets/demo/lion_dafrique.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/demo/lion_dafrique.jpg -------------------------------------------------------------------------------- /src/_deprecated/assets/demo/show_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/demo/show_code.png -------------------------------------------------------------------------------- /src/_deprecated/assets/demo/tab_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/demo/tab_content.png -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/AccidenzCommons.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/AccidenzCommons.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/JetBrainsMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/JetBrainsMono-Bold.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/JetBrainsMono-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/JetBrainsMono-Bold.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/JetBrainsMono-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/JetBrainsMono-Bold.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/JetBrainsMono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/JetBrainsMono-Regular.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/JetBrainsMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/JetBrainsMono-Regular.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/JetBrainsMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/JetBrainsMono-Regular.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/RobotoCondensed-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/RobotoCondensed-Bold.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/RobotoCondensed-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/RobotoCondensed-Bold.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/RobotoCondensed-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/RobotoCondensed-Bold.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/RobotoCondensed-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/RobotoCondensed-Regular.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/RobotoCondensed-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/RobotoCondensed-Regular.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/RobotoCondensed-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/RobotoCondensed-Regular.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-Bold.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-Bold.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-Bold.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-Regular.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-Regular.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-Regular.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-SemiBold.otf -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-SemiBold.woff -------------------------------------------------------------------------------- /src/_deprecated/assets/fonts/SourceSansPro-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cc-archive/vocabulary-legacy/6c4328527746bd0c36db0c51a3525e50bc3a3197/src/_deprecated/assets/fonts/SourceSansPro-SemiBold.woff2 -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/adjust.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/angle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/angle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/angle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/bars.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/bookmark-regular.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/bookmark-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-by.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-heart-filled.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-nc-eu.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-nc-jp.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-nc.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-nd.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-pd.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-pdm.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-remix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-sa.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/cc-share.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/circle-filled.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/circle-outline.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/envelope.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/external-link.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/flag.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/globe.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/info.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/medium.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/messenger.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/pinterest.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/question.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/reddit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/rss.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/search.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/slack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/sliders.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/sms.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/times.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/tumbler.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/assets/icons/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/_deprecated/components/breadcrumb/breadcrumb.scss: -------------------------------------------------------------------------------- 1 | $breadcrumb-item-color: $color-tomato; 2 | $breadcrumb-item-active-color: $color-dark-slate-gray; 3 | $breadcrumb-item-hover-color: $color-tomato; 4 | $breadcrumb-item-padding-horizontal: $space-small; 5 | $breadcrumb-item-separator-color: $color-gray; 6 | 7 | @import "~bulma/sass/components/breadcrumb.sass"; 8 | 9 | nav.breadcrumb > ul { 10 | font-size: $font-size-caption; 11 | font-weight: 600; 12 | 13 | li + li:before { 14 | font-family: "Vocabulary Icons"; 15 | content: "\e901"; 16 | } 17 | 18 | li:hover { 19 | text-underline-position: below; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/_deprecated/components/breadcrumb/breadcrumb.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Canvas, Story } from "@storybook/addon-docs/blocks"; 2 | import { figmaConfig, htmlWrapper } from "@/stories/helpers"; 3 | 4 | 5 | 6 | # Breadcrumb 7 | 8 | export const breadCrumb = () => ` 9 | 17 | `; 18 | 19 | The Breadcrumb has two text styles: links to parent pages and the page the user is seeing. The parent links should be corresponding to the site map defined. At the same time, the color used for links should be the main color for links across the site. 20 | 21 | For accessibility purposes, the component should be placed above the page's title. 22 | 23 | 24 | 30 | {htmlWrapper(breadCrumb()).bind({})} 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/_deprecated/components/buttons/Vue/VButton.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 52 | -------------------------------------------------------------------------------- /src/_deprecated/components/form/radio.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks"; 2 | import { figmaConfig, htmlWrapper } from "@/stories/helpers"; 3 | 4 | 5 | 6 | # Radio 7 | 8 | export const radioDiv = () => `

Radio buttons

9 |
10 | 14 | 17 | 20 |
`; 21 | 22 | 23 | 30 | {htmlWrapper(radioDiv()).bind({})} 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/_deprecated/components/form/select.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks"; 2 | import { figmaConfig, htmlWrapper } from "@/stories/helpers"; 3 | 4 | 5 | 6 | # Select 7 | 8 | export const selectDiv = () => ` 9 |
10 | 15 |
16 |

17 |
18 | 23 |
24 |

25 |
26 | 31 |
`; 32 | 33 | 34 | 41 | {htmlWrapper(selectDiv()).bind({})} 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/_deprecated/components/form/textarea.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks"; 2 | import { figmaConfig, htmlWrapper } from "@/stories/helpers"; 3 | 4 | 5 | 6 | # Textarea 7 | 8 | export const textArea = () => ` 9 | 10 |
11 | 12 |
13 | 14 | `; 15 | 16 | 17 | 24 | {htmlWrapper(textArea()).bind({})} 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/_deprecated/components/github_corner/github_corner.scss: -------------------------------------------------------------------------------- 1 | .github-corner { 2 | position: absolute; 3 | top: 0; 4 | 5 | &.is-left-aligned { 6 | left: 0; 7 | transform: scaleX(-1); 8 | } 9 | 10 | &:not(.is-left-aligned) { 11 | right: 0; 12 | } 13 | 14 | &.is-inverted { 15 | color: $color-black; 16 | 17 | svg { 18 | fill: $color-white; 19 | } 20 | 21 | &:hover { 22 | color: $color-black; 23 | } 24 | } 25 | 26 | &:not(.is-inverted) { 27 | color: $color-white; 28 | 29 | svg { 30 | fill: $color-black; 31 | } 32 | 33 | &:hover { 34 | color: $color-white; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/_deprecated/components/global_header/global_header.stories.mdx: -------------------------------------------------------------------------------- 1 | import { useEffect } from "@storybook/client-api"; 2 | import { Meta, Canvas, Story } from "@storybook/addon-docs/blocks"; 3 | import { createGlobalHeader } from "@/scripts/global_header"; 4 | 5 | 10 | `${storyFn()}`, 11 | ], 12 | }} 13 | /> 14 | 15 | export const globalHeader = 16 | "const globalHeaderInstance = vocabulary.createGlobalHeader()"; 17 | 18 | 19 | 20 | {() => { 21 | // Using Storybook hooks to clean up effects of DOM insertion 22 | useEffect(() => { 23 | // Function body executes for componentDidMount 24 | const globalHeaderInstance = createGlobalHeader(); 25 | // Return function executes for componentWillUnmount 26 | return () => { 27 | if (globalHeaderInstance && globalHeaderInstance.element) { 28 | globalHeaderInstance.element.remove(); 29 | } 30 | }; 31 | }); 32 | return '
'; 33 | }} 34 |
35 |
36 | -------------------------------------------------------------------------------- /src/_deprecated/components/header/Vue/ChooserLogo.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 46 | -------------------------------------------------------------------------------- /src/_deprecated/components/header/Vue/NavItem.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 49 | 50 | 55 | -------------------------------------------------------------------------------- /src/_deprecated/components/locale/Vue/VLocale.stories.js: -------------------------------------------------------------------------------- 1 | import VLocale from "./VLocale.vue"; 2 | 3 | export default { 4 | title: "Patterns/VLocale", 5 | component: VLocale, 6 | }; 7 | 8 | const Template = (args, { argTypes }) => ({ 9 | props: Object.keys(argTypes), 10 | components: { VLocale }, 11 | template: '', 12 | }); 13 | 14 | export const Default = Template.bind({}); 15 | -------------------------------------------------------------------------------- /src/_deprecated/components/locale/locale.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks"; 2 | import { figmaConfig } from "@/stories/helpers"; 3 | 4 | 5 | 6 | # Locale 7 | 8 | The locale component should be used to indicate and switch the language of the page where it is placed. The option 9 | displayed in the select component must show the current language and then the language’s name written in the language’s 10 | alphabet. 11 | 12 | 13 | {` 20 |
21 | Languages available 22 |
23 |
24 | 32 |
33 |
34 | locale 35 |
36 |
37 |
38 | `}
39 |
40 | -------------------------------------------------------------------------------- /src/_deprecated/components/modal/Vue/AppModal.stories.js: -------------------------------------------------------------------------------- 1 | import VButton from "@/components/buttons/Vue/VButton.vue"; 2 | import AppModal from "./AppModal.vue"; 3 | 4 | export default { 5 | title: "Patterns/VModal", 6 | component: AppModal, 7 | argTypes: { 8 | title: { 9 | control: { type: "text" }, 10 | }, 11 | }, 12 | }; 13 | 14 | const modalContainerTemplate = `
15 | Open Modal 16 | 17 |
18 |
19 | 23 |
24 |
25 |
`; 26 | 27 | const Template = (args, { argTypes }) => ({ 28 | props: Object.keys(argTypes), 29 | components: { AppModal, VButton }, 30 | template: modalContainerTemplate, 31 | data() { 32 | return { 33 | modalVisible: true, 34 | }; 35 | }, 36 | }); 37 | 38 | export const Default = Template.bind({}); 39 | -------------------------------------------------------------------------------- /src/_deprecated/components/profile_image/profile_image.scss: -------------------------------------------------------------------------------- 1 | @import "../../../node_modules/bulma/sass/elements/image"; 2 | 3 | .image { 4 | .profile { 5 | border-radius: 50%; 6 | 7 | border: solid 0.1875em $color-dark-slate-gray; 8 | min-width: 60px; 9 | 10 | object-fit: cover; 11 | height: 100%; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/_deprecated/components/sidebar_menu/sidebar_menu.scss: -------------------------------------------------------------------------------- 1 | $menu-item-color: $color-tomato; 2 | $menu-item-hover-background-color: none; 3 | $menu-item-active-background-color: none; 4 | $menu-item-active-color: $color-dark-slate-gray; 5 | $menu-list-border-left: none; 6 | $menu-nested-list-margin: 0; 7 | $menu-nested-list-padding-left: 0; 8 | $menu-list-link-padding: 0.5rem 0; 9 | 10 | @import "~bulma/sass/components/menu.sass"; 11 | 12 | .sidebar-menu { 13 | font-size: $font-size-body-normal; 14 | padding-top: $space-normal; 15 | padding-bottom: $space-big; 16 | 17 | font-weight: bold; 18 | line-height: 1.5; 19 | background-color: $color-lighter-gray; 20 | 21 | .menu-list .link { 22 | text-decoration: none; 23 | padding: 0; 24 | padding-top: $space-small; 25 | padding-left: $space-big; 26 | padding-right: $space-big; 27 | } 28 | 29 | .icon { 30 | color: $color-gray; 31 | padding-right: $space-small; 32 | 33 | font-size: 0.375rem; 34 | } 35 | 36 | .divider { 37 | margin-top: $space-normal; 38 | margin-bottom: $space-small; 39 | 40 | border-top: 0.1875rem solid $color-white; 41 | } 42 | } 43 | .sidebar-container { 44 | max-width: 276px; 45 | } 46 | -------------------------------------------------------------------------------- /src/_deprecated/components/table_of_contents/table_of_contents.scss: -------------------------------------------------------------------------------- 1 | // Refer to sidebar_menu.scss for the Bulma overrides 2 | 3 | @import "~bulma/sass/components/menu.sass"; 4 | 5 | .table-of-contents { 6 | font-size: $font-size-body-normal; 7 | padding: $space-big; 8 | margin-top: $space-normal; 9 | 10 | font-weight: bold; 11 | line-height: 1.5; 12 | border: 0.125rem solid $color-lighter-gray; 13 | box-sizing: border-box; 14 | background-color: $color-white; 15 | 16 | .menu-list .link { 17 | text-decoration: none; 18 | } 19 | 20 | .icon { 21 | color: $color-gray; 22 | padding-right: $space-small; 23 | 24 | font-size: 0.375rem; 25 | } 26 | } 27 | .toc-container { 28 | max-width: 276px; 29 | } 30 | -------------------------------------------------------------------------------- /src/_deprecated/components/tabs/Vue/Tab.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 39 | -------------------------------------------------------------------------------- /src/_deprecated/components/tabs/Vue/Tabs.stories.js: -------------------------------------------------------------------------------- 1 | import { figmaConfig } from "@/stories/helpers"; 2 | import { addDescription } from "@/utils/addDescription"; 3 | import Tabs from "./Tabs.vue"; 4 | import Tab from "./Tab.vue"; 5 | 6 | export default { 7 | title: "Layouts/TabsVue", 8 | parameters: { 9 | design: figmaConfig("933%3A1"), 10 | docs: { 11 | description: { 12 | component: 13 | "The Tabs component is a navigation element to switch between content sections, and should be used as the main content switch in a page. Tabs are added with the `` component.", 14 | }, 15 | }, 16 | }, 17 | component: Tabs, 18 | }; 19 | 20 | const Template = (args, { argTypes }) => ({ 21 | props: Object.keys(argTypes), 22 | components: { Tabs, Tab }, 23 | template: ` 24 | Music content. 25 | Pictures content. 26 | Videos content. 27 | Document content. 28 | `, 29 | }); 30 | 31 | export const Default = Template.bind({}); 32 | Default.args = {}; 33 | 34 | export const Boxed = Template.bind({}); 35 | addDescription( 36 | Boxed, 37 | "Set the `boxed` prop to `true` use a different variation." 38 | ); 39 | Boxed.args = { boxed: true }; 40 | -------------------------------------------------------------------------------- /src/_deprecated/fonts.js: -------------------------------------------------------------------------------- 1 | // This is the entrypoint for building Fonts. 2 | 3 | import "@/styles/fonts/_index.scss"; // Sass stylesheets, will be compiled 4 | -------------------------------------------------------------------------------- /src/_deprecated/mixins/branded.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: { 3 | /** 4 | * _the brand color for the component_ 5 | * 6 | * ∈ {`'blue'`, `'forest'`, `'gold'`, `'orange'`, `'tomato'`, `'turquoise'`, `'slate'`} 7 | */ 8 | brand: { 9 | type: String, 10 | validator: (val) => 11 | [ 12 | "blue", 13 | "forest", 14 | "gold", 15 | "orange", 16 | "tomato", 17 | "turquoise", 18 | "slate", 19 | ].includes(val), 20 | }, 21 | }, 22 | computed: { 23 | brandedClasses() { 24 | const classes = []; 25 | if (this.brand) { 26 | classes.push(`${this.brand}-branded`); 27 | } 28 | return classes; 29 | }, 30 | }, 31 | }; 32 | -------------------------------------------------------------------------------- /src/_deprecated/mixins/circleable.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: { 3 | /** 4 | * _whether to change the shape of the component into a circle_ 5 | */ 6 | isCircular: { 7 | type: Boolean, 8 | default: false, 9 | }, 10 | }, 11 | computed: { 12 | circleableClasses() { 13 | return [ 14 | { 15 | circular: this.isCircular, 16 | }, 17 | ]; 18 | }, 19 | }, 20 | }; 21 | -------------------------------------------------------------------------------- /src/_deprecated/mixins/indicating.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: { 3 | /** 4 | * _the state to indicate the component in_ 5 | * 6 | * ∈ {`'negative'`, `'positive'`, `'probably'`} 7 | */ 8 | indication: { 9 | type: String, 10 | validator: (val) => ["negative", "positive", "probably"].includes(val), 11 | }, 12 | }, 13 | computed: { 14 | indicatingClasses() { 15 | const classes = []; 16 | if (this.indication) { 17 | classes.push(`${this.indication}-indicating`); 18 | } 19 | return classes; 20 | }, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /src/_deprecated/mixins/invertible.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: { 3 | /** 4 | * _whether the component appears on a dark or non-white background_ 5 | * 6 | * This essentially negates all greyscale colors. 7 | */ 8 | isInverted: { 9 | type: Boolean, 10 | default: false, 11 | }, 12 | }, 13 | computed: { 14 | invertibleClasses() { 15 | return [ 16 | { 17 | inverted: this.isInverted, 18 | }, 19 | ]; 20 | }, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /src/_deprecated/mixins/simplified.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: { 3 | /** 4 | * _the amount of simplicity in the appearance of the component_ 5 | * 6 | * ∈ {`'slight'`, `'extreme'`} 7 | */ 8 | simplicity: { 9 | type: String, 10 | validator: (val) => ["slight", "extreme"].includes(val), 11 | }, 12 | }, 13 | computed: { 14 | simplifiedClasses() { 15 | const classes = []; 16 | if (this.simplicity) { 17 | classes.push(`${this.simplicity}ly-simple`); 18 | } 19 | return classes; 20 | }, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /src/_deprecated/mixins/sized.js: -------------------------------------------------------------------------------- 1 | import { sizes } from "@/utils/values"; 2 | 3 | export const sized = { 4 | props: { 5 | size: { 6 | type: String, 7 | default: "normal", 8 | validator(value) { 9 | return sizes.includes(value); 10 | }, 11 | }, 12 | }, 13 | computed: { 14 | sizeClasses() { 15 | const classes = {}; 16 | if (this.size) { 17 | classes[this.size] = true; 18 | } 19 | return classes; 20 | }, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /src/_deprecated/scripts/constants.js: -------------------------------------------------------------------------------- 1 | export const CC_ORG_URL = "https://creativecommons.org"; 2 | export const DONATION_URL = "https://creativecommons.org/donate"; 3 | 4 | export const CDN_BASE_URL = "https://unpkg.com/@creativecommons/vocabulary"; 5 | export const GLOBAL_HEADER_API_URL = 6 | "https://creativecommons.org/wp-json/ccglobal/menu"; 7 | 8 | // TODO: Internationalise 9 | export const DONATION_TITLE = "Our work relies on you!"; 10 | export const DONATION_DESCRIPTION = "Help us keep the internet free and open."; 11 | export const DONATION_BUTTON_TEXT = "Donate now"; 12 | export const NAVIGATION_TAB_TEXT = "Explore CC"; 13 | export const VISIT_SITE_BUTTON_TEXT = "Visit site"; 14 | -------------------------------------------------------------------------------- /src/_deprecated/scripts/render.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Create an HTMLElement with the given tag, class and children. 3 | * 4 | * This function is a convenience function to provide a declarative interface 5 | * for generating DOM inside JavaScript. 6 | * 7 | * The extremely terse name `h` comes from Vue.js. 8 | * 9 | * @param {string} tagName - the name of the HTML tag for the element 10 | * @param {Array} classes - a list of classes to apply to the element 11 | * @param {Array} children - an Array of DOM nodes to place inside the element 12 | * @param {function} callbackFn - a function for performing actions on the node 13 | * @return {HTMLElement} the element generated by the function 14 | */ 15 | export const h = (tagName, classes = [], children = [], callbackFn = null) => { 16 | const element = document.createElement(tagName); 17 | if (classes) { 18 | element.classList.add(...classes); 19 | } 20 | if (children) { 21 | children.forEach((child) => element.appendChild(child)); 22 | } 23 | if (callbackFn) { 24 | callbackFn(element); 25 | } 26 | return element; 27 | }; 28 | -------------------------------------------------------------------------------- /src/_deprecated/scripts/vocabulary.js: -------------------------------------------------------------------------------- 1 | export { createGlobalHeader } from "./global_header"; 2 | -------------------------------------------------------------------------------- /src/_deprecated/stories/meta/contribution.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta } from "@storybook/addon-docs/blocks"; 2 | 3 | 4 | 5 | # Contribution 6 | 7 | It is always a pleasure to have contributors help us find and fix bugs, build new features and improve on our documentation. 8 | If you are interested in contributing, please read our Contributing guidlines [Contributing Guidelines.][readme] 9 | 10 | [readme]: https://github.com/creativecommons/vocabulary#contributing 11 | -------------------------------------------------------------------------------- /src/_deprecated/stories/meta/welcome.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks"; 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | {" "} 11 | 12 |

13 | Vocabulary is a cohesive design system to unify the web-facing Creative 14 | Commons. 15 |

16 | 17 | {" "} 18 | 19 | 20 | 26 | 27 | 28 | 29 | 30 |

31 | This is the Storybook for Vocabulary.
32 | Choose a component from the left panel to know more about it and explore the various customisations it has to offer. 33 |

34 |
35 | 36 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/_deprecated/stories/meta/wip.stories.mdx: -------------------------------------------------------------------------------- 1 | import { Meta } from "@storybook/addon-docs"; 2 | 3 | 4 | 5 | # 🚧 Vocabulary 6 | 7 | Coming soon... 8 | -------------------------------------------------------------------------------- /src/_deprecated/stories/vocabulary/combined_header.stories.mdx: -------------------------------------------------------------------------------- 1 | import { useEffect } from "@storybook/client-api"; 2 | import { Meta, Canvas, Story } from "@storybook/addon-docs/blocks"; 3 | import { createGlobalHeader } from "@/scripts/global_header"; 4 | import { header } from "@/stories/helpers"; 5 | 6 | 11 | `${storyFn()}`, 12 | ], 13 | }} 14 | /> 15 | 16 | export const globalHeader = 17 | "const globalHeaderInstance = vocabulary.createGlobalHeader()"; 18 | 19 | 20 | 21 | {() => { 22 | // Using Storybook hooks to clean up effects of DOM insertion 23 | useEffect(() => { 24 | // Function body executes for componentDidMount 25 | const globalHeaderInstance = createGlobalHeader(); 26 | // Return function executes for componentWillUnmount 27 | return () => { 28 | if (globalHeaderInstance && globalHeaderInstance.element) { 29 | globalHeaderInstance.element.remove(); 30 | } 31 | }; 32 | }); 33 | return header("rgb(237, 89, 47)"); 34 | }} 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/_deprecated/stories/vocabulary/icon_font.stories.mdx: -------------------------------------------------------------------------------- 1 | import { 2 | Meta, 3 | IconItem, 4 | IconGallery, 5 | Story, 6 | } from "@storybook/addon-docs/blocks"; 7 | import { figmaConfig } from "@/stories/helpers"; 8 | 9 | 10 | 11 |
14 | body.sb-show-main, 15 | .sbdocs.sbdocs-wrapper { 16 | padding: 0 !important; 17 | } 18 | .sbdocs.sbdocs-content { 19 | max-width: unset; 20 | } 21 | .iframe-holder { 22 | background: url("puff.svg") center center no-repeat; 23 | } 24 | 25 | `, 26 | }} 27 | >
28 | 29 | 30 | 31 |
32 |