npm i docsify-cli -g
docsify serve ./nypl-design-system-docs
The follow is a list of things we'd like this documentation site to accomplish or be capable of.
- Site should be searchable
- Site should be editable
- Site should have a table of all of the components with their statuses (in-progress, in-review, complete), and the implementation libraries' statuses (Twig template, React component, ERB template)
| UX | Accessibility | DT: Twig | DT: React | DT: ERB |
|---|---|---|---|---|
| Complete | Complete | Complete | Out of Date | Not Built |
- Site should have authorship data, last revision date(s) on files, and descriptions of changes made (such as a git commit)
- Site should have roles so that certain users can lock components and their documentation to prevent edits unless author has a certain role
- In-progress components should have a working draft that is still visible on the site
- We should be able to see everywhere a component is used—for example, ResearchNow has a section that pulls in dynamically all of the components it is using for QA to be able to see all of that information in one place
- Site should have an intro page and a Getting Started Guide
- Components should display the relationships of where they are used and link back to their lower-level functional requirements (e.g., "Event Status Bar" uses "Button", link to the button component to see its requirements)
- Components should have: link to Figma instance for designers, IA (functional specs and accessibility), look & feel, their status, a built and interactive display of the component in-action, and the numbered documentation that Ellen created listing functional requirements.
- We should be able to number the components on the page in our documentation site to write documentation for them. This should automatically add the number to that component in Figma.
| ID | Template ID | Module ID | Order # | Document Field |
|---|---|---|---|---|
Ideation/Product >> UX/Prototype >> Design Technology (templates, React components) >> Version Update >> Committing back to the library
I am using the word component to refer to atoms, molecules, and organisms in our design system.
- Template ID: This is a unique identifier generated by the db.
- **Component id: This may be an atom, molecule, or organism; it maps to a component id from the component table. Module UUID maps to our controled vocabulary of ids usind abbreviations and numbers, ex. OG-002.
- Order Number: This is meaningful, it maps to tab/reading/HTML order. It is also the order things will appear in mobile.
- Documentation ID: This is an id that ties together a template, a component, and the documentation text
- Project ID: This is a unique identifier generated by the db.
- Project Name: This is the name of the project, ex "Shared Collection Catalog". For NYPL.org reno, projects would map to sections of the site ex: "NYPL - Locations" or "NYPL - Research."
- Documentation Field Type: This is a controlled vocabulary, right now it is: description, rules, accessibility, source
- Documentation Field: This is a field with documentation notes. It is a markdown file to allow for some formatting like including code snippits like an HTML element.
- Component Name: This is the human readable name of a component, ex "Footer"
- Component Type: Right now these are: Atom, molecule, organism
Fields:
- Template ID
- Component UUID
- Order Number
- Documentation ID
This table inventories active project ids and names. Fields:
- Project ID
- Project Name Project ID and Project Name have a 1-1 relationship.
This table inventories which templates belong to which projects.
Fields:
- Project ID
- Template ID One project ID may hae many Template IDs. One Template ID has only one Project ID.
This table inventories which components belong to which templates.
Fields:
- Template ID
- Component ID Template ID and Component ID have a many to many relationship.
This is the inventory of components, ids, name, and types.
Fields
- Component IDs
- Component Name
- Component Type
Component IDs and Component Names have a one to many relationship. A component name has one component type.
Fields:
- Documentation ID
- Documentation Field Type
- Documentation Field
- How do we handle JavaScript?
- Interplay: Interplay connects with your design system code repository to let you access and use your design system code components right within Figma. I don't know if this would be useful.
- Google Sheets Sync: Sync content from Google Sheets directly into your Figma file. This might be helpful for updating names.
- Focus Orderer: Quickly annotate your designs’ focus / tab order flow. Intriguing for Willa, potentially.
- Layer Names Transform: This plugin will help you to quickly transform the names of your layers.