├── .editorconfig ├── .github ├── dependabot.yml └── workflows │ └── deploy.yml ├── .gitignore ├── .nvmrc ├── CNAME ├── LICENSE ├── README.md ├── docs ├── assets │ ├── application.scss │ ├── favicon.ico │ ├── icon.png │ ├── mask-icon.svg │ └── opengraph-image.png ├── index.md └── pages │ ├── action.md │ ├── architecture.md │ ├── art.md │ ├── collection.md │ ├── comparison.md │ ├── fashion.md │ ├── music.md │ ├── nature.md │ ├── numeration.md │ ├── pages.json │ ├── publishing.md │ ├── relation.md │ └── theatre.md ├── eleventy.config.js ├── eslint.config.js ├── lib └── filters │ └── dfn.js ├── package-lock.json └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_size = 2 6 | indent_style = space 7 | charset = utf-8 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "monthly" 7 | - package-ecosystem: "npm" 8 | directory: "/" 9 | schedule: 10 | interval: "monthly" 11 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: deploy 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | # Enable running this workflow manually from the Actions tab 9 | workflow_dispatch: 10 | 11 | # Set permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 12 | permissions: 13 | contents: read 14 | pages: write 15 | id-token: write 16 | 17 | # Allow one concurrent deployment 18 | concurrency: 19 | group: pages 20 | cancel-in-progress: true 21 | 22 | jobs: 23 | build: 24 | runs-on: ubuntu-latest 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@v4 28 | - name: Setup Pages 29 | uses: actions/configure-pages@v5 30 | - name: Install dependencies 31 | run: npm ci 32 | - name: Build with Eleventy 33 | run: npm run-script build 34 | - name: Upload artifact 35 | uses: actions/upload-pages-artifact@v3 36 | 37 | deploy: 38 | environment: 39 | name: github-pages 40 | url: ${{ steps.deployment.outputs.page_url }} 41 | runs-on: ubuntu-latest 42 | needs: build 43 | steps: 44 | - name: Deploy to GitHub Pages 45 | id: deployment 46 | uses: actions/deploy-pages@v4 47 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | coverage 2 | node_modules/ 3 | npm-debug.log 4 | _site 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22 2 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | classnames.paulrobertlloyd.com 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2023 Paul Robert Lloyd 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 9 | of the Software, and to permit persons to whom the Software is furnished to do 10 | 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Classnames 2 | 3 | 4 | 5 | > There are only two hard things in computer science: cache invalidation and naming things. 6 | 7 | Naming things needn’t be hard. Find inspiration for naming things – be that HTML classes, CSS properties or JavaScript functions – using these lists of useful words. 8 | 9 | ## Requirements 10 | 11 | Node.js v20 or later. 12 | 13 | ## Installation 14 | 15 | ```shell 16 | npm install 17 | ``` 18 | 19 | ## Usage 20 | 21 | ```shell 22 | npm start 23 | ``` 24 | 25 | ## Contributing 26 | 27 | Contributions are welcome. Please create a pull request with your suggestions. 28 | 29 | Use `npm run lint` to check your code before submitting a pull request. 30 | -------------------------------------------------------------------------------- /docs/assets/application.scss: -------------------------------------------------------------------------------- 1 | // Use GOV.UK Frontend components 2 | $_font-family: "Space Grotesk", system-ui; 3 | @use "pkg:govuk-frontend/dist/govuk" with ( 4 | $govuk-global-styles: true, 5 | $govuk-new-organisation-colours: true, 6 | $govuk-new-typography-scale: true, 7 | $govuk-font-family: $_font-family, 8 | $govuk-page-width: 800px, 9 | $govuk-brand-colour: #cc3399, 10 | $govuk-template-background-colour: #f9f9fc, 11 | $govuk-focus-colour: #ffccee, 12 | $govuk-link-colour: #0066cc, 13 | $govuk-link-visited-colour: #0066cc, 14 | $govuk-link-hover-colour: #993399, 15 | $govuk-link-active-colour: #003399, 16 | $govuk-text-colour: #333344, 17 | $govuk-secondary-text-colour: #555566, 18 | $govuk-border-colour: #ddddee 19 | ); 20 | 21 | // Use GOV.UK Eleventy Plugin components 22 | @forward "pkg:@x-govuk/govuk-eleventy-plugin"; 23 | 24 | .govuk-header__container { 25 | border-bottom-width: 1px; 26 | border-color: #fff6; 27 | margin-bottom: -1px; 28 | padding-bottom: 10px; 29 | padding-top: 20px; 30 | } 31 | 32 | .app-header__logotype { 33 | font-weight: bold; 34 | text-transform: lowercase; 35 | } 36 | 37 | .app-header__logotype::before { 38 | color: #c39; 39 | content: "."; 40 | } 41 | 42 | .govuk-header, 43 | .x-govuk-masthead { 44 | background: linear-gradient(-90deg, #c39, #336 66%); 45 | } 46 | 47 | .x-govuk-masthead__title { 48 | font-size: 2.75rem; 49 | } 50 | -------------------------------------------------------------------------------- /docs/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulrobertlloyd/classnames/2b5d83bb332b40d1b647f5c221f166ed3285f371/docs/assets/favicon.ico -------------------------------------------------------------------------------- /docs/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulrobertlloyd/classnames/2b5d83bb332b40d1b647f5c221f166ed3285f371/docs/assets/icon.png -------------------------------------------------------------------------------- /docs/assets/mask-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /docs/assets/opengraph-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulrobertlloyd/classnames/2b5d83bb332b40d1b647f5c221f166ed3285f371/docs/assets/opengraph-image.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | homepage: true 3 | layout: collection 4 | title: Naming things needn’t be hard 5 | description: Find inspiration for naming things – be that HTML classes, CSS properties or JavaScript functions – using these lists of useful words. 6 | pagination: 7 | data: collections.all 8 | size: 100 9 | paginationHeading: Word lists 10 | aside: 11 | title: About Classnames 12 | content: | 13 | This site provides thematically grouped lists of words. Each word links to a dictionary definition on [Wordnik](https://www.wordnik.com) where you can learn more about its meaning, usage and related words. 14 | --- 15 | -------------------------------------------------------------------------------- /docs/pages/action.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Action 3 | description: Describe the behaviour or operation of things. 4 | --- 5 | 6 | - {{ "brand" | dfn }} 7 | - {{ "highlight" | dfn }} 8 | - {{ "mark" | dfn }} 9 | - {{ "sign" | dfn }} 10 | 11 | --- 12 | 13 | - {{ "fill" | dfn }} 14 | - {{ "pour" | dfn }} 15 | 16 | --- 17 | 18 | - {{ "circulate" | dfn }} 19 | - {{ "contain" | dfn }} 20 | - {{ "control" | dfn }} 21 | - {{ "explore" | dfn }} 22 | 23 | --- 24 | 25 | - {{ "allow" | dfn }} ⇄ {{ "deny" | dfn }} 26 | - {{ "convince" | dfn }} 27 | - {{ "engage" | dfn }} 28 | - {{ "enhance" | dfn }} 29 | - {{ "support" | dfn }} 30 | 31 | --- 32 | 33 | - {{ "calm" | dfn({ latin: "tranquil" }) }} 34 | - {{ "discrete" | dfn }} 35 | - {{ "dramatic" | dfn }} 36 | - {{ "flexible" | dfn }} 37 | - {{ "graceful" | dfn }} 38 | - {{ "shy" | dfn }} 39 | 40 | --- 41 | 42 | - {{ "fix" | dfn }} 43 | - {{ "flip" | dfn }} 44 | - {{ "fold" | dfn }} 45 | - {{ "hang" | dfn }} / {{ "hung" | dfn }} 46 | - {{ "hide" | dfn }} / {{ "hidden" | dfn }} 47 | - {{ "invert" | dfn }} ⇄ {{ "extrovert" | dfn }} 48 | - {{ "lift" | dfn }} ⇄ {{ "lower" | dfn }} 49 | - {{ "pack" | dfn }} 50 | - {{ "pad" | dfn }} 51 | - {{ "pin" | dfn }} 52 | - {{ "pinch" | dfn }} 53 | - {{ "pitch" | dfn }} 54 | - {{ "pull" | dfn }} ⇄ {{ "push" | dfn }} 55 | - {{ "separate" | dfn }} 56 | - {{ "stack" | dfn }} 57 | - {{ "stick" | dfn }} / {{ "stuck" | dfn }} 58 | - {{ "wrap" | dfn }} 59 | -------------------------------------------------------------------------------- /docs/pages/architecture.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🏛️ Architecture 3 | description: Terms from architecture can describe the space in and around things. 4 | related: 5 | sections: 6 | - title: Related links 7 | items: 8 | - text: Glossary of architecture on Wikipedia 9 | href: https://en.wikipedia.org/wiki/Glossary_of_architecture 10 | --- 11 | 12 | ## Construction 13 | 14 | - {{ "foundation" | dfn }} or {{ "footing" | dfn }} 15 | - {{ "frame" | dfn }} 16 | - {{ "scaffold" | dfn }} 17 | - {{ "elevation" | dfn }} 18 | 19 | ### Stages 20 | 21 | - {{ "rough in" | dfn }} or {{ "cut out" | dfn }} 22 | - {{ "fit out" | dfn }} or fit off 23 | - {{ "lockup" | dfn }} 24 | - {{ "handover" | dfn }} 25 | 26 | ## Parts 27 | 28 | - {{ "fitting" | dfn }} 29 | - {{ "fixture" | dfn }} 30 | - {{ "furniture" | dfn }} 31 | - {{ "floor" | dfn }} ⇄ {{ "ceiling" | dfn }} 32 | - {{ "steps" | dfn }} 33 | - {{ "roof" | dfn }} 34 | - {{ "tower" | dfn }} 35 | 36 | ## Spaces 37 | 38 | - {{ "concierge" | dfn }} 39 | - {{ "entrance" | dfn }} 40 | - {{ "gallery" | dfn }} 41 | - {{ "landing" | dfn }} 42 | - {{ "lobby" | dfn }} 43 | - {{ "reception" | dfn }} 44 | - {{ "room" | dfn }} 45 | -------------------------------------------------------------------------------- /docs/pages/art.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🎨 Art 3 | description: Terms from art can describe the composition of things. 4 | --- 5 | 6 | ## Composition 7 | 8 | - {{ "accent" | dfn }} 9 | - {{ "adjacent" | dfn }} 10 | - {{ "auxiliary" | dfn }} 11 | - {{ "blur" | dfn }} ⇄ {{ "focus" | dfn }} 12 | - {{ "canvas" | dfn }} 13 | - {{ "complement" | dfn }} 14 | - {{ "crop" | dfn }} 15 | - {{ "frame" | dfn }} 16 | - {{ "field" | dfn }} 17 | - {{ "inline" | dfn }} ⇄ {{ "outline" | dfn }} 18 | - {{ "inner" | dfn }} ⇄ {{ "outer" | dfn }} 19 | - {{ "inside" | dfn }} ⇄ {{ "outside" | dfn }} 20 | - {{ "figure" | dfn }} ⇄ {{ "ground" | dfn }} 21 | - {{ "portrait" | dfn }} ⇄ {{ "landscape" | dfn }} 22 | - {{ "foreground" | dfn }} ⇄ {{ "background" | dfn }} 23 | 24 | ## Layout 25 | 26 | 1. – 27 | 2. {{ "diptych" | dfn }} 28 | 3. {{ "triptych" | dfn }} 29 | 4. {{ "quadriptych" | dfn }} 30 | 5. {{ "pentaptych" | dfn }} 31 | 6. {{ "hexaptych" | dfn }} 32 | 7. {{ "heptaptych" | dfn }} 33 | 8. {{ "octaptych" | dfn }} 34 | 35 | See also: {{ "polyptych" | dfn }} (4 or more) 36 | -------------------------------------------------------------------------------- /docs/pages/collection.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Collection 3 | description: Describe the containment and grouping of things. 4 | --- 5 | 6 | - {{ "array" | dfn }} 7 | - {{ "box" | dfn }} 8 | - {{ "component" | dfn }} 9 | - {{ "container" | dfn }} 10 | - {{ "element" | dfn }} 11 | - {{ "group" | dfn }} 12 | - {{ "module" | dfn }} 13 | - {{ "node" | dfn }} 14 | - {{ "pod" | dfn }} 15 | - {{ "kit" | dfn }} 16 | - {{ "receptacle" | dfn }} 17 | - {{ "separator" | dfn }} 18 | - {{ "wrapper" | dfn }} 19 | -------------------------------------------------------------------------------- /docs/pages/comparison.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Comparison 3 | description: Describe the equivalent likeness between things. 4 | --- 5 | 6 | ## Amplitude 7 | 8 | - {{ "muted" | dfn }} ⇄ {{ "amplified" | dfn }} 9 | - {{ "muffled" | dfn }} ⇄ {{ "noisy" | dfn }} 10 | - {{ "quiet" | dfn }} ⇄ {{ "loud" | dfn }} 11 | 12 | ## Height 13 | 14 | - {{ "low" | dfn }} ⇄ {{ "high" | dfn }} 15 | - {{ "short" | dfn }} ⇄ {{ "tall" | dfn }} 16 | 17 | ## Light 18 | 19 | - {{ "bright" | dfn }} ⇄ {{ "dull" | dfn }} 20 | - {{ "light" | dfn }} ⇄ {{ "dark" | dfn }} 21 | - {{ "clear" | dfn({ latin: "clarion" }) }} 22 | 23 | ## Movement 24 | 25 | - {{ "ready" | dfn }} 26 | - {{ "static" | dfn }} 27 | - {{ "still" | dfn }} 28 | - {{ "quick" | dfn }} 29 | 30 | ## Position 31 | 32 | - {{ "detached" | dfn({ latin: "staccato" }) }} 33 | - {{ "middle" | dfn({ latin: "mezzo" }) }} 34 | - {{ "center" | dfn }} 35 | - {{ "left" | dfn({ latin: "sinistra" }) }} ⇄ {{ "right" | dfn({ latin: "dextra" }) }} 36 | - {{ "bottom" | dfn }} ⇄ {{ "top" | dfn }} 37 | - {{ "lower" | dfn }} ⇄ {{ "upper" | dfn }} 38 | 39 | ## Pressure 40 | 41 | - {{ "soft" | dfn({ latin: "piano" }) }} ⇄ {{ "hard" | dfn }} 42 | 43 | ## Quantity 44 | 45 | - {{ "less" | dfn }} ⇄ {{ "more" | dfn }} 46 | 47 | ## Size 48 | 49 | - {{ "min[imum]" | dfn }} ⇄ {{ "max[imum]" | dfn }} 50 | - {{ "small[est]" | dfn }} ⇄ {{ "large[st]" | dfn }} 51 | - {{ "tiny" | dfn }} 52 | - {{ "jumbo" | dfn }} 53 | - {{ "massive" | dfn }} 54 | 55 | ## Space 56 | 57 | - {{ "open" | dfn }} ⇄ {{ "close" | dfn }} 58 | 59 | ## Speed 60 | 61 | - {{ "quick" | dfn({ latin: "presto" }) }} 62 | - {{ "slow" | dfn }} ⇄ {{ "fast" | dfn }} 63 | 64 | ## Viscosity 65 | 66 | - {{ "solid" | dfn }} ⇄ {{ "fluid" | dfn }} 67 | 68 | ## Volume 69 | 70 | - {{ "empty" | dfn }} ⇄ {{ "full" | dfn }} 71 | 72 | ## Weight 73 | 74 | - {{ "light" | dfn }} ⇄ {{ "heavy" | dfn }} 75 | 76 | ## Width 77 | 78 | - {{ "condensed" | dfn }} ⇄ {{ "expanded" | dfn }} 79 | - {{ "slim" | dfn }} ⇄ {{ "fat" | dfn }} 80 | - {{ "narrow" | dfn }} ⇄ {{ "wide" | dfn }} 81 | -------------------------------------------------------------------------------- /docs/pages/fashion.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 👔 Fashion 3 | description: Terms from fashion can describe the size of things. 4 | related: 5 | sections: 6 | - title: Related links 7 | items: 8 | - text: Clothing sizes on Wikipedia 9 | href: https://en.wikipedia.org/wiki/Clothing_sizes 10 | --- 11 | 12 | ## Clothing sizes 13 | 14 | | Name | Abbreviation | Initialism | 15 | | ----------------- | ------------ | ---------- | 16 | | extra-extra-small | xx-small | xxs | 17 | | extra-small | x-small | xs | 18 | | small | sm | s | 19 | | medium | md | m | 20 | | large | lg | l | 21 | | extra-large | x-large | xl | 22 | | extra-extra-large | xx-large | xxl | 23 | -------------------------------------------------------------------------------- /docs/pages/music.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🎼 Music 3 | description: Terms from musical can describe the pace, volume and arrangement of things. 4 | related: 5 | sections: 6 | - title: Related links 7 | items: 8 | - text: Musical Ensembles on Wikipedia 9 | href: https://en.wikipedia.org/wiki/Template:Musical_ensembles 10 | --- 11 | 12 | ## Ensembles 13 | 14 | 1. {{ "solo" | dfn }} 15 | 2. {{ "duo" | dfn }} 16 | 3. {{ "trio" | dfn }} 17 | 4. {{ "quartet" | dfn }} 18 | 5. {{ "quintet" | dfn }} 19 | 6. {{ "sextet" | dfn }} 20 | 7. {{ "septet" | dfn }} 21 | 8. {{ "octet" | dfn }} 22 | 9. {{ "nonet" | dfn }} 23 | 10. {{ "decet" | dfn }} 24 | 11. – 25 | 12. {{ "duedecet" | dfn }} 26 | 27 | ## Notes 28 | 29 | - {{ "breve" | dfn }} (double note) 30 | - {{ "semibreve" | dfn }} (whole note) 31 | - {{ "minim" | dfn }} (half note) 32 | - {{ "crotchet" | dfn }} (quarter note) 33 | - {{ "quaver" | dfn }} (eighth note) 34 | 35 | ## Tempo 36 | 37 | - {{ "largo" | dfn }} 38 | - {{ "adagio" | dfn }} 39 | - {{ "andante" | dfn }} 40 | - {{ "moderato" | dfn }} 41 | - {{ "allegro" | dfn }} 42 | - {{ "presto" | dfn }} 43 | 44 | ## Time signatures 45 | 46 | - {{ "simple" | dfn }} 47 | - {{ "compound" | dfn }} 48 | - {{ "complex" | dfn }} 49 | - {{ "mixed" | dfn }} 50 | - {{ "additive" | dfn }} 51 | - {{ "fractional" | dfn }} 52 | - {{ "irrational" | dfn }} 53 | 54 | ## Vocal range 55 | 56 | ### Female 57 | 58 | - {{ "soprano" | dfn }} 59 | - {{ "mezzo-soprano" | dfn }} 60 | - {{ "contralto" | dfn }} 61 | 62 | ### Male 63 | 64 | - {{ "tenor" | dfn }} 65 | - {{ "baritone" | dfn }} 66 | - {{ "bass" | dfn }} 67 | -------------------------------------------------------------------------------- /docs/pages/nature.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🌳 Nature 3 | description: Terms from nature can describe the parts of things. 4 | --- 5 | 6 | ## Trees 7 | 8 | - {{ "root" | dfn }} 9 | - {{ "trunk" | dfn }} 10 | - {{ "crown" | dfn }} 11 | - {{ "branch" | dfn }} 12 | - {{ "stem" | dfn }} 13 | - {{ "twig" | dfn }} 14 | - {{ "leaf" | dfn }} 15 | - {{ "flower" | dfn }} 16 | - {{ "fruit" | dfn }} 17 | 18 | ## Animals 19 | 20 | - {{ "head" | dfn }} ⇄ {{ "foot" | dfn }} 21 | - {{ "tail" | dfn }} 22 | -------------------------------------------------------------------------------- /docs/pages/numeration.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Numeration 3 | description: Describe the order, precedence and multiplication of things. 4 | related: 5 | sections: 6 | - title: Related links 7 | items: 8 | - text: Numeral prefix on Wikipedia 9 | href: https://en.wikipedia.org/wiki/Numeral_prefix 10 | --- 11 | 12 | ## Order 13 | 14 | 1. {{ "first" | dfn }} 15 | 2. {{ "second" | dfn }} 16 | 3. {{ "third" | dfn }} 17 | 4. {{ "fourth" | dfn }} 18 | 5. {{ "fifth" | dfn }} 19 | 6. {{ "sixth" | dfn }} 20 | 7. {{ "seventh" | dfn }} 21 | 8. {{ "eighth" | dfn }} 22 | 9. {{ "ninth" | dfn }} 23 | 10. {{ "tenth" | dfn }} 24 | 25 | ## Precedence 26 | 27 | 1. {{ "primary" | dfn }} 28 | 2. {{ "secondary" | dfn }} 29 | 3. {{ "tertiary" | dfn }} 30 | 4. {{ "quaternary" | dfn }} 31 | 5. {{ "quinary" | dfn }} 32 | 6. {{ "senary" | dfn }} 33 | 7. {{ "septenary" | dfn }} 34 | 8. {{ "octonary" | dfn }} 35 | 9. {{ "nonary" | dfn }} 36 | 10. {{ "denary" | dfn }} 37 | 38 | ## Multiplication 39 | 40 | See also: [Music - Ensembles](/music#ensembles). 41 | 42 | 1. {{ "single" | dfn }} 43 | 2. {{ "couple" | dfn }}, {{ "double" | dfn }}, {{ "pair" | dfn }}, {{ "tandem" | dfn }} 44 | 3. {{ "triple" | dfn }}/{{ "treble" | dfn }}, {{ "triad" | dfn }} 45 | 4. {{ "quadruple" | dfn }} 46 | 5. {{ "quintuple" | dfn }} 47 | 6. {{ "sextuple" | dfn }} 48 | 7. {{ "septuple" | dfn }} 49 | 8. {{ "octuple" | dfn }} 50 | 9. {{ "nonuple" | dfn }} 51 | 10. {{ "decuple" | dfn }} 52 | 11. {{ "undecuple" | dfn }} 53 | 12. {{ "duodecuple" | dfn }} 54 | 13. {{ "tredecuple" | dfn }} 55 | 56 | - {{ "centuple" | dfn }} (100) 57 | - {{ "multiple" | dfn }} (more than 1) 58 | -------------------------------------------------------------------------------- /docs/pages/pages.json: -------------------------------------------------------------------------------- 1 | { 2 | "layout": "sub-navigation", 3 | "templateEngineOverride": "njk,md", 4 | "permalink": "{{ title | slugify }}/index.html" 5 | } 6 | -------------------------------------------------------------------------------- /docs/pages/publishing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 📰 Publishing 3 | description: Terms from publishing can describe digitally published things. 4 | related: 5 | sections: 6 | - title: Related links 7 | items: 8 | - text: "What do you call the parts of a story? Or: why can’t journalists spell “lead”?" 9 | href: https://blog.carlmjohnson.net/post/2020/article-bits/ 10 | - text: News style, Terms_and_structure on Wikipedia 11 | href: https://en.wikipedia.org/wiki/News_style#Terms_and_structure 12 | - text: Traditional point-size names on Wikipedia 13 | href: https://en.wikipedia.org/wiki/Traditional_point-size_names 14 | --- 15 | 16 | ## Formats 17 | 18 | - {{ "page" | dfn }} 19 | - {{ "poster" | dfn }} 20 | - {{ "leaflet" | dfn }} 21 | - {{ "pamphlet" | dfn }} 22 | - {{ "primer" | dfn }} 23 | - {{ "brochure" | dfn }} 24 | - {{ "tabloid" | dfn }} 25 | - {{ "berliner" | dfn }} 26 | - {{ "broadsheet" | dfn }} 27 | 28 | ## Sections 29 | 30 | - {{ "appendix" | dfn }} 31 | - {{ "article" | dfn }} 32 | - {{ "chapter" | dfn }} 33 | - {{ "colophon" | dfn }} 34 | - {{ "cover" | dfn }} 35 | - {{ "feature" | dfn }} 36 | - {{ "index" | dfn }} 37 | - {{ "masthead" | dfn }} or {{ "nameplate" | dfn }} 38 | - {{ "section" | dfn }} 39 | - {{ "spread" | dfn }} 40 | 41 | ## Article parts 42 | 43 | - {{ "abstract" | dfn }} 44 | - {{ "aside" | dfn }} 45 | - {{ "badge" | dfn }} 46 | - {{ "body" | dfn }} 47 | - {{ "box[out]" | dfn }} 48 | - {{ "callout" | dfn }} 49 | - {{ "caption" | dfn }} 50 | - {{ "citation" | dfn }} 51 | - {{ "ear" | dfn }} 52 | - {{ "excerpt" | dfn }} 53 | - {{ "footer" | dfn }} ⇄ {{ "header" | dfn }} 54 | - {{ "intro[duction]" | dfn }} 55 | - {{ "meta" | dfn }} 56 | - {{ "prose" | dfn }} 57 | - {{ "quote" | dfn }} 58 | - {{ "rubric" | dfn }} 59 | - {{ "slug" | dfn }} 60 | - {{ "sidebar" | dfn }} 61 | - {{ "signpost" | dfn }} 62 | - {{ "summary" | dfn }} 63 | - {{ "tag" | dfn }} 64 | 65 | ### Journalism 66 | 67 | - {{ "headline" | dfn }} or hed 68 | - {{ "subhead" | dfn }} or subhed 69 | - {{ "dek" | dfn }} or deck 70 | - {{ "billboard" | dfn }} 71 | - {{ "byline" | dfn }} 72 | - {{ "dateline" | dfn }} 73 | - {{ "standfirst" | dfn }} 74 | - {{ "lede" | dfn }} or lead 75 | - {{ "nutgraf" | dfn }} or {{ "nutshell" | dfn }} 76 | - {{ "kicker" | dfn }} 77 | 78 | ## Layout 79 | 80 | - {{ "grid" | dfn }} 81 | - {{ "col[umn]" | dfn }} 82 | - {{ "line" | dfn }} 83 | - {{ "region" | dfn }} 84 | - {{ "row" | dfn }} 85 | - {{ "unit" | dfn }} 86 | -------------------------------------------------------------------------------- /docs/pages/relation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Relation 3 | description: Describe the association between two or more things. 4 | --- 5 | 6 | ## Ancestral 7 | 8 | - {{ "ancestor" | dfn }} 9 | - {{ "child" | dfn }} 10 | - {{ "parent" | dfn }} 11 | - {{ "relative" | dfn }} 12 | - {{ "sibling" | dfn }} 13 | - {{ "twin" | dfn }} 14 | - {{ "orphan" | dfn({ discouraged: true }) }} 15 | - {{ "widow" | dfn({ discouraged: true }) }} 16 | 17 | ## Hierarchical 18 | 19 | - {{ "capital" | dfn }} 20 | - {{ "cardinal" | dfn }} 21 | - {{ "chief" | dfn }} 22 | - {{ "distinguished" | dfn }} 23 | - {{ "especial" | dfn }} 24 | - {{ "great" | dfn }} 25 | - {{ "grand" | dfn }} 26 | - {{ "hero" | dfn }} ⇄ {{ "villain" | dfn }} 27 | - {{ "main" | dfn }} 28 | - {{ "paramount" | dfn }} 29 | - {{ "principle" | dfn }} 30 | - {{ "master" | dfn({ discouraged: true }) }} ⇄ {{ "slave" | dfn({ discouraged: true }) }} 31 | - {{ "super" | dfn }} ⇄ {{ "sub" | dfn }} 32 | - {{ "superior" | dfn }} ⇄ {{ "inferior" | dfn }} 33 | - {{ "superordinate" | dfn }} ⇄ {{ "subordinate" | dfn }} 34 | - {{ "supreme" | dfn }} ⇄ {{ "subservient" | dfn }} 35 | - {{ "major" | dfn }} ⇄ {{ "minor" | dfn }} 36 | - {{ "senior" | dfn }} ⇄ {{ "junior" | dfn }} 37 | - {{ "rich" | dfn }} ⇄ {{ "poor" | dfn }} 38 | - {{ "vital" | dfn }} ⇄ {{ "trivial" | dfn }} 39 | 40 | ## Sequential 41 | 42 | - {{ "current" | dfn }} 43 | - {{ "next" | dfn }} ⇄ {{ "prev[ious]" | dfn }} 44 | - {{ "start" | dfn }} ⇄ {{ "finish" | dfn }} 45 | - {{ "first" | dfn }} ⇄ {{ "last" | dfn }} 46 | - {{ "pre" | dfn }} ⇄ {{ "post" | dfn }} 47 | -------------------------------------------------------------------------------- /docs/pages/theatre.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 🎭 Theatre 3 | description: Terms from theatre can describe the state of things. 4 | --- 5 | 6 | ## Components 7 | 8 | - {{ "character" | dfn }} 9 | - {{ "scene" | dfn }} 10 | - {{ "stage" | dfn }} 11 | - {{ "player" | dfn }} 12 | - {{ "entrance" | dfn }} ⇄ {{ "exit" | dfn }} 13 | 14 | ## Narrative structure 15 | 16 | - {{ "prelude" | dfn }} 17 | - {{ "interlude" | dfn }} 18 | - {{ "postlude" | dfn }} 19 | - {{ "encore" | dfn }} 20 | 21 | ### Three act structure 22 | 23 | - {{ "protasis" | dfn }} 24 | - {{ "epitasis" | dfn }} 25 | - {{ "catastrophe" | dfn }} 26 | 27 | ### Five act structure 28 | 29 | - {{ "introduction" | dfn }} 30 | - {{ "rise" | dfn }} 31 | - {{ "climax" | dfn }} 32 | - {{ "fall" | dfn }} 33 | - {{ "resolution" | dfn }} or {{ "denouement" | dfn }} 34 | -------------------------------------------------------------------------------- /eleventy.config.js: -------------------------------------------------------------------------------- 1 | import process from "node:process"; 2 | import { govukEleventyPlugin } from "@x-govuk/govuk-eleventy-plugin"; 3 | import { dfn } from "./lib/filters/dfn.js"; 4 | const siteUrl = "https://classnames.paulrobertlloyd.com"; 5 | const repoUrl = "https://github.com/paulrobertlloyd/classnames"; 6 | 7 | // eslint-disable-next-line unicorn/no-anonymous-default-export 8 | export default function (eleventyConfig) { 9 | // Plugins 10 | eleventyConfig.addPlugin(govukEleventyPlugin, { 11 | icons: { 12 | mask: `${siteUrl}/assets/mask-icon.svg`, 13 | shortcut: `${siteUrl}/assets/favicon.ico`, 14 | touch: `${siteUrl}/assets/icon.png`, 15 | }, 16 | stylesheets: [ 17 | "/assets/application.css", 18 | "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@450;700&display=swap", 19 | ], 20 | themeColor: "#336", 21 | opengraphImageUrl: `${siteUrl}/assets/opengraph-image.png`, 22 | url: process.env.GITHUB_ACTIONS && siteUrl, 23 | titleSuffix: "Classnames", 24 | showBreadcrumbs: false, 25 | header: { 26 | logotype: { 27 | text: "Classnames", 28 | }, 29 | }, 30 | footer: { 31 | contentLicence: { 32 | html: `Licensed under the MIT License.`, 33 | }, 34 | copyright: { 35 | text: "© Paul Robert Lloyd", 36 | }, 37 | meta: { 38 | items: [ 39 | { 40 | href: repoUrl, 41 | text: "Contribute", 42 | }, 43 | ], 44 | }, 45 | }, 46 | }); 47 | 48 | // Filters 49 | eleventyConfig.addFilter("dfn", dfn); 50 | 51 | // Passthrough 52 | eleventyConfig.addPassthroughCopy("./docs/assets"); 53 | 54 | // Config 55 | return { 56 | dir: { 57 | input: "docs", 58 | }, 59 | }; 60 | } 61 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from "@eslint/js"; 2 | import prettier from "eslint-config-prettier"; 3 | import unicorn from "eslint-plugin-unicorn"; 4 | import globals from "globals"; 5 | 6 | export default [ 7 | js.configs.recommended, 8 | unicorn.configs["flat/recommended"], 9 | { 10 | ignores: ["_site/"], 11 | }, 12 | { 13 | files: ["**/*.js"], 14 | languageOptions: { globals: { ...globals.node } }, 15 | }, 16 | prettier, 17 | ]; 18 | -------------------------------------------------------------------------------- /lib/filters/dfn.js: -------------------------------------------------------------------------------- 1 | export function dfn(string, options) { 2 | const word = string.replaceAll(/\[|\]/g, ""); 3 | let dfn = `${string}`; 4 | 5 | if (options?.latin) { 6 | dfn += ` (latin: ${options.latin})`; 7 | } 8 | 9 | if (options?.discouraged) { 10 | dfn = `${dfn}`; 11 | } 12 | 13 | return dfn; 14 | } 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@paulrobertlloyd/classnames", 3 | "version": "1.0.0", 4 | "description": "A source of inspiration for naming things.", 5 | "keywords": [ 6 | "reference", 7 | "resource" 8 | ], 9 | "homepage": "https://github.com/paulrobertlloyd/classnames", 10 | "bugs": { 11 | "url": "https://github.com/paulrobertlloyd/classnames/issues" 12 | }, 13 | "license": "MIT", 14 | "repository": { 15 | "type": "git", 16 | "url": "https://github.com/paulrobertlloyd/classnames.git" 17 | }, 18 | "scripts": { 19 | "build": "eleventy --quiet", 20 | "start": "eleventy --serve --quiet", 21 | "lint:prettier": "prettier . --check", 22 | "lint:prettier:fix": "prettier . --write", 23 | "lint:js": "eslint '**/*.js'", 24 | "lint:js:fix": "eslint '**/*.js' --fix", 25 | "lint": "npm run lint:prettier && npm run lint:js", 26 | "lint:fix": "npm run lint:prettier:fix && npm run lint:js:fix" 27 | }, 28 | "devDependencies": { 29 | "@11ty/eleventy": "^3.0.0", 30 | "@x-govuk/govuk-eleventy-plugin": "^7.0.0", 31 | "eslint": "^9.0.0", 32 | "eslint-config-prettier": "^10.1.0", 33 | "eslint-plugin-prettier": "^5.1.2", 34 | "eslint-plugin-unicorn": "^59.0.0", 35 | "prettier": "^3.1.1" 36 | }, 37 | "private": true, 38 | "engines": { 39 | "node": ">=20.11" 40 | }, 41 | "type": "module" 42 | } 43 | --------------------------------------------------------------------------------