Giter Club home page Giter Club logo

Comments (1)

idoros avatar idoros commented on May 28, 2024

Work plan

Strict class dot prefix

  • Any point in the new syntax that takes a class reference will not fallback to the class name with no dot prefix, making reference to both class-selector and type-selector ambiguous.

V0 - #2386

V1

Base styling

  • allow declarations and nested rules within @st body
  • transform away any build-time statement syntax keeping the inline declarations
  • disallow nested @st within @media and other nested at-rules
  • lsp: check for native declarations and nested rules

Ambient root

  • default import from a stylesheet with @st is handled:
    • import the root class if exist
    • import an new ambient-root symbol that cannot be used alone in a selector, but can be used as a record-like-selector to access the top level @st .class selectors (transforms away)

Pseudo-Element inheritance

syntax: @st ::part(Base) => mapped-selector

  • register pseudo-element extended reference to part-symbol[-st-extends]
  • error on extends issues
  • transform inherited selector (check case for selector intersection between extends and inferred mapped selector)
  • lsp:
    • suggest extends syntax (&0) completion
    • suggest available references in extends parenthesis

Syntactical Sugar pseudo-element to class

  • decide on the syntax and implement...

V2

Private statements

  • filter out from named imports any class that is not defined with @st
  • use @st-hide ::part to override inherited API and block it
    • transformation error
    • lsp: should not suggest part
  • use top level @st-hide .class to prevent it from being named export (maybe @st-private?)
  • figure out other symbols private/public modifiers (keyframes, layers, build-vars, custom-properties)

Explicit override statements

  • use @st-override to explicitly override an extended selector API
  • add reference override API in the normal @st override error

Multiple extends

  • allow setting multiple references in extend

V3

Set selector context

  • new selector API to get an internal selector:st-ctx(A::B)::C => .c

Top level @st for non-class

  • @st type-selector - support native and custom elements definition
  • @st Interface - support interface definition

More semantic definitions

  • @st-theme
  • @st-variant

from stylable.

Related Issues (20)

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.