Comments (3)
My plan for this was to get an initial draft of the components in and then look at ensuring the API is consistent via something like form builder's traits and making them inherit from a single base class; then we can make these decisions in a single place and enforce uniformity.
I don't mind too much whether the classes
argument takes a String
, Array
but I'm leaning towards having it accept both. Internally, combining arrays feels much cleaner than appending strings and there are patterns which work nicely in the form builder that we can use for inspiration.
When this is dealt with in a single place we can refactor and hone it until everyone's happy. I definitely think that standardising should be the next step once the components are implemented, although there's no reason we can't start that now.
from govuk-components.
I've made some progress on this. Now all the components inherit from GovukComponent::Base
which deals with the classes
arg. The same behaviour can be used throughout to set classes on the main element in the component. I'll add the same approach for custom HTML attributes shortly.
Since introducing slots, much of the 'subcomponent' functionality (i.e. tabs in a tab list) can be moved to its own class and called within the block (component.slot(:tab, title: 'Hello') { ... }
), we can use the same approach here and add custom classes/attrs at the slot level.
This will give us all the flexibility of the official nunjucks macros but with a more Rails-like API.
from govuk-components.
I think this is now handled consistently throughout via the classes:
keyword arg. Happy to have another look if it's not sufficient.
from govuk-components.
Related Issues (20)
- Support inverse button style HOT 2
- Add task list component HOT 2
- Add inverse option to Breadcrumbs and Back link components
- Support other design systems HOT 1
- `hide_in_print` option wonβt work for `nhsuk` brand HOT 3
- Axe updates rejecting the accordion section HOT 3
- SVG attribute `viewBox` not correctly capitalised HOT 1
- Default content for header labels does not match latest version of GOV.UK Frontend
- Version 5 release notes HOT 4
- Bug: undefined method `govuk_visually_hidden' (5.0.0 prerelease)
- Update visually hidden text in action links on summary cards
- Slightly out-of-date gem and node package instructions in the upgrade section of the 5.0.0 release notes HOT 1
- Improvements to `new_tab` behaviour HOT 2
- Default title for govuk_tabs
- Update breadcrumbs to accept an array, deprecate hash argument HOT 2
- Lists HOT 6
- Previews for Components HOT 2
- Add `data-module="govuk-button"` to links styled as buttons HOT 1
- Gem can generate invalid duplicate data attributes on buttons
- Notification banner: with_heading can't generate heading tags HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from govuk-components.