Title Here
Open Culturetruncated teaser excerpt
A cohesive system of design for Creative Commons.
note: This documentation is still in draft mode.
note: At present Vocabulary is unversioned, and hyper localized to the Index Project (CreativeCommons.org). This means that apart from the global Header and Footer areas; components, elements, pieces, tokens, etc. are not adequately generalized enough to be as composable within other site/project contexts. The work to correct this is underway, caution should be exercised in the meantime.
Vocabulary is a refactor and reimplementation of the original, now archived, Vocabulary Legacy project.
Both projects are informed by the CC Style Guide (2019), and incorporate or adapt its guidance into a digital context.
Vocabulary is raw material design system with inherent rules and generalized implementable documentation.
Vocabulary is then implemented within a project via an upstream/downstream relationship as follow:
Design System → Static Implementation → Dynamic Implementation vocabulary → prototype → final vocabulary → [project]-prototype → [project]-[implementation(s)] (*-dev-env *-theme, etc.)
In the case of the Index Project (CreativeCommons.org) it looks like this:
vocabulary → index-prototype → vocabulary-theme
We need to maintain a way to test F/E UX absent a CMS layer. That way the static layer prototype describes the intended output the CMS would create. It becomes a form of documentation and testing. It's an expectation spec.
It's one additional layer of downstream changes, but it provides a clear and distinct documentation for how and where things are localized when vocabulary is implemented, and can offer good examples for where we can pull varied localized implementations upstream into vocabulary generally, so the localizations can then be removed.
Either route is valid, and has its reasons for being the more viable route. But it is generally preferred that route A be the default consideration wherever possible.
Download the creativecommons/vocabulary repository, rename the /src directory to /vocabulary, and move it into desired location.
Vocabulary needs to be included via CSS and JavaScript routes. Both are generally required, and recommended.
Your project should include a “main/root” css styles file, which is included within the head element of your HTML.
Include vocabulary.css from within style.css via a CSS @layer import at the top of the file.
@import 'PATH/TO/vocabulary/css/vocabulary.css' layer(vocabulary);
Note: (for in-dev implementations) You can also include the vocabulary-tests.css file to perform basic tests against recommended and required approaches within the HTML markup.
@import 'PATH/TO/vocabulary/css/vocabulary.css' layer(vocabulary);
@import 'PATH/TO/vocabulary/css/vocabulary-tests.css' layer(vocabulary-tests);
Production use of the vocabulary-tests.css file is not recommended generally.
Vocabulary has a minimal JavaScript footprint, but does have some required behaviors that rely on JS.
Include the vocabulary.js file at the bottom of your HTML markup, prior to the closing body tag.
Components are discrete collected elements in a semantic order that provide a coherent meaning, and can be placed in various contexts which expect them. Various presentations and/or behaviors can then be applied to them depending on the needs, rules, and use cases of various contexts.
Each CC site utilizing Vocabulary should include the global Header & Footer areas at the top and bottom of the site respectively.
The Global Header component contains several sub-elements.
These sub-elements are not independent and are not meant to be used outside of the Global Header component.
Skip to content
Each CC site utilizing Vocabulary should include the global Header & Footer areas at the top and bottom of the site respectively.
The Global Footer component contains several sub-elements.
These sub-elements are not independent and are not meant to be used outside of the Global Footer component.
Images Attribution
-
...
content here
Name Here
Position/Title here
Truncated bio here…
Persons
-
Name Here
Position/Title here
Truncated bio here…
...
Post components nested within a Posts component can be direct children or nested within an html list element (ol/ul)
Title Here
Open Culture
truncated teaser excerpt
Posts components support a pseudo-semantic variant class of featured or related. This helps further describe what they are more specifically, but allows a semantic-ish target for their change in behavior or provided sub-elements.
Title Here
Title Here
Open Culture
truncated teaser excerpt
Tags
- open culture
...
Title
55+ million articles
Descriptive text here
-
Title
55+ million articles
Descriptive text here
...
Title here
Descriptive text
-
...
Title
Descriptive text here
Learn more
Title Here
lead in paragraph
Open Culture
Name
position/title here
pronouns optionally here
Bio here