All Projects → kuhumcst → stucco

kuhumcst / stucco

Licence: other
An experimental adaptive UI toolkit.

Programming Languages

clojure
4091 projects
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to stucco

enabler
✋ Accessibility analyzer for your frontend.
Stars: ✭ 19 (-38.71%)
Mutual labels:  accessibility, aria, wcag
alfa
♿ Suite of open and standards-based tools for performing reliable accessibility conformance testing at scale
Stars: ✭ 75 (+141.94%)
Mutual labels:  accessibility, aria, wcag
Js Offcanvas
A lightweight, flexible jQuery off-canvas navigation plugin which lets you create fully accessible sidebar or top/bottom sliding (or push) panels with keyboard interactions and ARIA attributes.
Stars: ✭ 272 (+777.42%)
Mutual labels:  accessibility, aria, wai-aria
accessibility-testing-tools
A collection of useful tools for accessibility testing and debugging in the browser, online and desktop
Stars: ✭ 18 (-41.94%)
Mutual labels:  accessibility, wai-aria, wcag
Vue Simple Suggest
Feature-rich autocomplete component for Vue.js
Stars: ✭ 324 (+945.16%)
Mutual labels:  accessibility, aria, wai-aria
a11y-checker
Identifies accessibility issues in HTML markup.
Stars: ✭ 103 (+232.26%)
Mutual labels:  accessibility, wcag
tailwindcss-aria-attributes
TailwindCSS variants for aria-* attributes
Stars: ✭ 92 (+196.77%)
Mutual labels:  accessibility, aria
a11y-contracting
Building Accessibility Best Practices into Contracting
Stars: ✭ 43 (+38.71%)
Mutual labels:  accessibility, wcag
accessibility-ruleset-runner
eBay Accessibility Ruleset Runner automates 20% of WCAG 2.0 AA recommendations, saving time on manual testing.
Stars: ✭ 24 (-22.58%)
Mutual labels:  accessibility, wcag
Neumorphism
Try to Neumorphism in Android (Just experimental!! 🧪)
Stars: ✭ 365 (+1077.42%)
Mutual labels:  experimental, widgets
SAPC-APCA
APCA (Accessible Perceptual Contrast Algorithm) is a new method for predicting contrast for use in emerging web standards (WCAG 3) for determining readability contrast. APCA is derived form the SAPC (S-LUV Advanced Predictive Color) which is an accessibility-oriented color appearance model designed for self-illuminated displays.
Stars: ✭ 266 (+758.06%)
Mutual labels:  accessibility, wcag
cluse
Sketch Plugin to check and adjust color contrast accessibility with live preview and sliders. Endorsed by Sketch.
Stars: ✭ 54 (+74.19%)
Mutual labels:  accessibility, wcag
jquery-accessible-simple-tooltip-aria
jQuery accessible simple tooltip window, using ARIA
Stars: ✭ 22 (-29.03%)
Mutual labels:  accessibility, aria
eufemia
DNB Design System
Stars: ✭ 38 (+22.58%)
Mutual labels:  accessibility, wcag
chusho
A library of bare & accessible components and tools for Vue.js 3
Stars: ✭ 47 (+51.61%)
Mutual labels:  accessibility, wcag
ari
Accessible unstyled vue components
Stars: ✭ 22 (-29.03%)
Mutual labels:  accessibility, wai-aria
aria-at
Assistive Technology ARIA Experience Assessment
Stars: ✭ 115 (+270.97%)
Mutual labels:  accessibility, aria
van11y-accessible-simple-tooltip-aria
ES2015 accessible simple tooltip, using ARIA
Stars: ✭ 22 (-29.03%)
Mutual labels:  accessibility, aria
aria disclosure widget
Progressively enhanced hide/show content areas with vanilla JS & appropriate ARIA attributes
Stars: ✭ 23 (-25.81%)
Mutual labels:  accessibility, aria
autocomplete-semantic-web
Semantic Web Autocomplete for Atom Editor
Stars: ✭ 45 (+45.16%)
Mutual labels:  aria, wai-aria

Stucco

The Stucco1 project is an ongoing experiment in creating adaptive user interfaces on top of a generic Clojure data model. The library contains a collection of accessible reagent components that together constitute a toolkit for doing rapid application development in the browser.

Overview

The library is still very much in the hammock stage, so the API is definitely not stable. That is not to say that the software is particularly buggy, just that the names and the general organisation of the code may vary greatly between versions.

It is currently being used - together with rescope - to build the glossematics archival website as part of the "Infrastrukturalisme" project, a joint effort between the University of Copenhagen and Aarhus University.

Components

Stucco components can be divided into four separate types, each given their own namespace:

  • dk.cst.stucco.document: Document components are comparable to typical reusable components found in libraries such as re-com. The primary purpose of a Document component is to provide a basic level of interactivity expected for simple pieces of data. An example might be the illustration component which can be used in place of the HTML [:img] element.
  • dk.cst.stucco.group: Group components are used to group other components in a loose manner, while allowing the user to manipulate the layout within the group.
  • dk.cst.stucco.pattern: Implementations of common WAI-ARIA patterns. Pattern components are more complex than Document components and reflect the mutability of their underlying state. In practice, this mutability is realised as universal drag-and-drop between Document components with compatible data. An example might be the tabs or carousel components which both visualise a collection of key-value pairs according to an index.
  • dk.cst.stucco.landmark: Landmark components are used to realise a user interface declaratively. Rather than specifying their precise locations, Stucco components are partitioned semantically into WAI-ARIA Landmark sections. These sections are then positioned on the web page according to an archetypical layout. Like the Pattern or Group components, this layout can also be changed by the end user, but at a higher level of abstraction.

The components allow you to construct a user interface that can adapt to various end user requirements without resulting in configurations that become too strange. When combined, Stucco components also compose into highly accessible web applications.2

CSS

Each of the four Stucco component types have an accompanying CSS file:

  • document.css for the dk.cst.stucco.document namespace
  • group.css for the dk.cst.stucco.group namespace
  • pattern.css for the dk.cst.stucco.pattern namespace
  • landmark.css for the dk.cst.stucco.landmark namespace

If any component from one of the namespaces is in use, the accompanying CSS file must also be loaded on the page!

In addition, two other CSS files are always required:

  • theme.css - Contains user-defined vars used to adjust the overall look. Can be uses as-is or modified.
  • shared.css - Contains shared CSS used across different components.

The BEM convention is used throughout the CSS files. In fact, some ClojureScript functionality relies directly on BEM classes. Such functionality is implemented in dk.cst.stucco.dom.bem and used in e.g. dk.cst.stucco.dom.drag to support drag-and-drop functionality.

Development

The development workflow of the library itself is built around the Clojure CLI for managing dependencies and shadow-cljs for compiling ClojureScript code and providing a live-reloading development environment.3

Notes

1 A construction material used as a decorative coating for Clojure data, allowing end users to participate in sculpturing the user interface.

2 Please see doc/vision.md for more on the reasoning behind certain design decisions.

3 Please see doc/development.md for more on the development of the library itself.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].