Giter Site home page Giter Site logo

rumenpetrov / waft-design-system Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 309 KB

[WIP] Simple design system example

Home Page: https://rumenpetrov.github.io/waft-design-system/

License: MIT License

TypeScript 56.25% HTML 22.51% MDX 19.31% CSS 0.82% JavaScript 1.12%
desing-system lit lit-element storybook web-components waft

waft-design-system's Introduction

Waft design system

โš ๏ธ Warning: This project is meant primary for learning and currently is in work in progress state. Expect breaking changes.

All-purpose design system, meant to be used in small to medium, framework or non-framework projects, where using something simple and non-intrusive is valued more than customizability and high amount of options. Its primary targeted to developers building an application for learning a new technology or something which doesn't require flashy looks. Web is the main supported platform but the system allows easier extension with more platforms.

Objectives

  • Phase MVP

    • Define and setup initial structure and tooling
    • Analyze and describe the use case and the scope of the design system which will be developed
      • Target Audience
      • Use Cases
      • Define Supported Platforms
      • Establish Design Principles
      • Catalog Components
      • Explain customization level and how styling could be done
    • Define anatomy elements and collect resources
      • Core values/Principles
      • Define initial tokens
      • Define initial systems, if needed
      • Define initial components
      • Add some guides
    • Setup npm package and document how it should be used
    • Auto deployment script
    • Add docs for at least one process - component contribution
    • Develop at least one component from the MVP list by following a process
  • Phase Next

    • Test with different frameworks and add examples/recipes
    • Fix problems with build tools import and importmap
    • Make automatic documentation for components to work
    • Define and describe versioning
    • More Design principles - Adaptive/Responsive/Accessibility
    • Setup Chromatic with CI
    • Add metrics - e.g. accessibility threshold
    • Setup tests
    • Make it more engaging - colors, gradients, animations
    • Light/dark theme
    • SSR components support

Inspiration

Technology stack

waft-design-system's People

Contributors

rumenpetrov avatar

Watchers

 avatar

waft-design-system's Issues

[Draft] Button proposal

Component description

The Button component serves as a fundamental element for user interaction within web interfaces. It enables users to perform actions such as submitting forms or triggering specific functionalities.

Potential use case examples

  1. Card actions
  2. Submitting a form
  3. Triggering a modal dialog
  4. Initiating a call-to-action (CTA) within a marketing campaign

image
image
image

Visual appearance

  • Design
    image
  • Solid background color
  • Roundness consistent to the global design tokens
  • Clear and recognizable as a clickable element
  • Consistent size and spacing to maintain visual harmony within the interface
  • Some adjustable CSS properties to accommodate different styling and branding needs
  • Font size equal to font size design token for regular text
  • Accessible contrast ratio to ensure readability and usability

List of supported states - e.g. hover, focus, error, disabled, read-only...

  • Default - Normal state of the button.
  • Hover - When the user hovers over the button.
  • Focus - When the button receives keyboard focus.
  • Active - When the button is clicked or tapped.
  • Disabled - When the button is not clickable or interactable.
  • Error - When the button represents an action that results in an error.

Expected interface/properties/variants/types/forms

  • Content - Text or text + emoji on both sides
  • Preserve the type attribute behavior when within a form
  • Size - only 1 size, could be adjusted over exposed CSS variables
  • Variants - "default" and "accent"
  • Full width option

Input component

Component description

The Input component serves as a fundamental element for user input within web forms. It allows users to enter short text and facilitates interaction and data submission.

Potential use case examples

  1. Form fields for collecting user information
  2. Search bars or input fields for filtering content
  3. Comment sections or text input areas for user feedback

image
image

Visual appearance

  • Inherits his background color from the document, depending on the theme.
  • Roundness consistent to the global design tokens
  • Clear and recognizable as an input field
  • Consistent size and spacing to maintain visual harmony within the interface
  • Adjustable CSS properties to accommodate different styling and branding needs
  • Font size equal to font size design token for regular text
  • Accessible contrast ratio to ensure readability and usability

List of supported states - e.g. hover, focus, error, disabled, read-only...

  • Default - Normal state of the input field.
  • Focus - When the cursor is inside the input field or it receives the keyboard focus.
  • Disabled - When the input field is not editable or interactable.
  • Read only - Same as idea and visual appearance as disabled.
  • Error - When the input field contains invalid or erroneous data.

Expected interface/properties/variants/types/forms

  • Preserve as much as possible from the native behavior and attributes
  • Full width option

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.