Code Monkey home page Code Monkey logo

cssui's Introduction

Hi, I'm Francesco

I am currently employed as a Senior Product Designer at @teamdigitale, Italy's Department for Digital Transformation.

My role involves curating the Italian Government Design System and designing services to improve the citizen experience.

Over the past 15 years, I have acted as a digital designer for diverse companies, from large organizations to small startups, leading teams and projects. In 2010, I co-founded Robodomain, a software company that develops tools and apps for domain management.

With a passion for design and coding, I am always eager to embrace new challenges and create something truly extraordinary.

๐Ÿš€ Products

Design Tokens Manager โ€” Effortless design tokens management in Notion

Design Tokens Pro โ€” A digital course to master design tokens

๐Ÿ“ฎ Newsletters

Design Tokens Pills

Designabile ๐Ÿ‡ฎ๐Ÿ‡น

๐Ÿ™Œ How to reach me

Blog - X - CodePen - DEV - Medium

โšก๏ธ Sponsors

@reubenwalker64

cssui's People

Contributors

meesvandongen avatar omaxel avatar rickdoesburg avatar schum123 avatar zetareticoli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cssui's Issues

Tabs: Missing accessibility features

Comparing the current implementation of Tabs to the one described on this MDN page, there are a couple of issues related to accessibility.

Things we are missing are:

  • Elements with the role tab must either be a child of an element with the tablist role, or have their id part of the aria-owns property of a tablist.
  • They should contain the aria-controls property identifying an element with the tabpanel role.
  • When working with elements with the tab role, when they are selected or active, they should have their aria-selected attribute set to true, otherwise it should be set to false.
  • When a tab is selected or active, its controlled tabpanel should have its aria-expanded attribute set to true and its hidden attribute set to false, otherwise the reverse.
  • It is recommended to use a button element with the role tab for their built-in functional and accessible features instead, as opposed to needing to add them yourself. For controlling tab key functionality for elements with the role tab, it is recommended to set all non-active elements to tabindex=-1, and to set the active element to tabindex=0.

Also, I would highlight this sentence on the same MDN page:

While there are ways to build tab-like functionality without JavaScript, there are no substitute combination of HTML and CSS only that will provide the same set of functionality that's required above for accessible tabs with content.

We should decide how to approach this.

I was thinking to provide a separate package containing JS file for each component which provides accessibility improvements.

Add support for dark mode

Each component should works in dark mode.

Add support for both a class on <body> and prefers-color-scheme

[Component] Fullpage Slider

The fullPage slider creates a full-width, scrollable section. The user could set-up the slider direction (x o y).

Investigate Datepicker

Do some research on datepicker components learning more on interactions, accessibility and javascript requirements

Fix dark mode bugs

The website in dark mode presents some layout bugs.

We should fix them before the launch.

Add support for prefers-reduced-motion

In browsers/environments that allow the user to specify their preference for reduced motion, the CSS transition effect will be disabled.

Test animation in such context.

Complete Intro documentation

Add information about:

  • general introduction
  • translate Customize
  • browser support
  • add Contribute
  • add Issue or problems with link to GitHub
  • remove HELP Section

Accordion item label keyboard focus not visualized on FF and Safari

Hi @zetareticoli, first of all nice work!

The accordion item label focus outline, using keyboard navigation, is not displaying properly on Firefox and Safari.
I'm using latest versions on MacOS, but iยดm sure the issue persists on Windows too.
The problem seems to be the overflow: hidden here:

[data-accordion-item] {
  width: 100%;
  overflow: hidden;
}

Removing overflow: hidden fixes this issue. I'm not sure why you are using overflow here.
Can you confirm this?
Thanks.

Accordion: focus on closed panel child element

When a panel of the accordion has a focusable child element, it gains focus even if the panel is not opened. This happens because the closed panel has max-height: 0 instead of display: none or the hidden attribute.

When evaluating a solution, consider that display can't be used in animation which probably is the main reason for which max-height has been used.

Sass/SCSS component files

Add SCSS/Sass stylesheets for each component.

Integrate a Sass compiler to automatically generate the CSS.

Modal: Missing focus trap

When the user clicks on a button that triggers the modal opening, he's still able to move the focus around the page using the tab key.

Instead, the focus should be trapped inside the modal and its controls.

[Documentation] [Bug] h2 headings too big

The headings of the docs are too big, preventing clicking the 4th accordion item on mobile.

Here a screenshot:
image

This is due to a :before element, which has

height: 6rem;
margin-top: -6rem;

which is a bit on the generous side perhaps.

Note that this issue only applies to the div (whitespace) surrounding the label inside the 4th accordion item; the label itself (and everything inside) is still clickable and will open/close the accordion.

Also note the existence of scroll margin top which may be a better way to do what the code aims to do.

Documentation for contributors

We should add documentation to contribute to this project, including but not limited to:

  • branching strategy
  • naming conventions;
    • branches;
    • PR titles;
  • how to run the project on a local machine;
  • how to test components;
  • which parts of the projects should be updated when submitting changes (e.g. changes to the .md files);
  • how to handle components' behavior which can only be implemented with JS.

Before working on that, we should have a more exhaustive list.

Test component templates accessible via direct URL

Currently, to test a component it's necessary to use the Documentation page.

For development reasons, it is instead necessary to be able to test the component accessing the .html file inside /lib/ folder

Provide CDN link

Please provide a link to a single minified CSS stylesheet on some CDN, e.g. CDNJS or jsDelivr. All CSS frameworks should have it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.