Legacy Notes

Project Phases

The project has 3 Phases, refered to as CC1, CC2, and CC3.

  1. CC1 - Reproduce the native elements as closely as possible.

  2. CC2 - Reproduce the native element, plus add minor enhancements to basic functionality. Emphasis on usability, more effective access to HTML5 features, broader use case support, and developer friendliness.

  3. CC3 - Reproduce the native element's functionality, but with a completely modern approach. Make it more capable, versatile, and robust.

CC1 - Recreating native elements

Phase
Functionality
Tech

Core Components 1 ( CC1 ) Reproduce the native element as closely as possible.

  • Drop in CC1's anywhere an existing native element is used.

  • Use in Build Mode slots.

  • Better CMS & Property data-binding

  • Basic design-time functional UX

Webflow;

  • Components

  • Custom elements

  • Classes

  • Variables

  • Use Webflow.js where possible

  • Use Webflow's built-in internal w-* classes

Also;

  • JS only where needed to bridge gaps

  • Custom CSS only where needed to bridge gaps

Core Components 2 ( CC2 ) Reproduce the native element, plus add minor enhancements to basic functionality. Emphasis on usability, more effective access to HTML5 features, broader use case support, and developer friendliness.

  • More complex forms, with more exposed input attributes

  • Improved JS support for enable/disable/readonly, validation, etc.

  • Improved a11y

  • Easy integration with key libraries;

    • SA5

    • FS Attributes

  • Component variations

    • e.g. Icon buttons

    • e.g. Swatch radio buttons

Same as above.

Core Components 3 ( CC3 ) Reproduce the native element's functionality, but with a completely modern approach. Make it more capable, versatile, and robust.

  • Advanced components

  • Specific Designer mode mechanics.

  • Solution for instructions.

  • Solution for styling

Webflow;

  • Components

  • Custom elements

  • Classes

  • Variables

  • GSAP (likely no Webflow.js for UX)

Also;

  • JavaScript

  • 3rd party libs, e.g. swiperJS, flatpickr, luxon, etc.

  • Isolated CSS?

  • Smart variable application?

Goals

CORE COMPONENTS - PHASE 1

General goals;

  • Versatility. Create several variants or versions of the component to suit specific cases

  • Easier customization, where needed. "Crack open" fundamental elements to allow more intesting arrangements to occur in a specific project.

  • Ease of use. Espose special functionality better in a more accessible way.

  • Deeper a11y control and flexibility

  • Easier customization, where needed. "Crack open" fundamental elements to allow more intesting arrangements to occur.

Use cases;

  • Multi-step forms

  • Customized forms

  • CMS-compatible sliders and tabs

At the same time, Webflow.js

CC2 COMPONENTS

General goals;

  • Combine components that are very similer

    • e.g. H Flex and V Flex

  • Split components that deserve distinction

  • Support common configurations as Variants

    • e.g. Grid 2-col and 3-col

  • Create new basic components for convenience

    • e.g. Inline SVG Icon

CC3 COMPONENTS

Levels of Components

All elements can be thought of as consisting of;

  • HTML, CSS, and possible JS

To these we are adding varying degres of;

  1. Component slots assembly

  2. Component properties

  3. Custom JS

    1. "Shivs" to close gaps in current component design

  4. CSS variables

The conceptual evolution is;

CC1
CC2
CC3

Goal

Reproduce the native element as closely as possible.

Reproduce the native element, plus minor enhancements to basic functionality. Emphasis on usability.

Reproduce the native element's functionality, but with a completely modern approach. Make it more capable, versatile, and robust.

Value

  • Tech starting point

  • Proof of concept

  • Some data-binding advantages, e.g. checkbox binding to a collection list

  • Familiar element

  • Key enhancements ( see examples )

TECHNICAL APPROACH

HTML

  • Reproduce the native element as closely as possible.

  • Use custom elements primarily, for attribute freedom.

  • Use Slots where it makes sense in multi-element assemblies like forms.

CC1 plus-

  • Consider best use of Properties. Look for ways to utilize Link, Image, Video properties effectively.

CSS

  • Utilize the native element's CSS as closely as possible, with no changes.

JS

  • Utilize the native element's JS, with no changes.

COMPONENT FEATURES

Slots

Limited

More robust

Unlimited, when appropriate

Variables

No

Yes

Yes, extensively

Variants

No

Yes

Yes

Build / Lib mode attention

No

Some

100%

EXAMPLES

Button

Button

  • Image Icon variant

  • Disabled state

  • Use of CSS vars and variants for styling

Form Input

Form Input

  • with default value

  • Disabled state

Slider

Basic Slider

CMS-compatible slider

Possible switch to swiper.js as engine

Video

Basic Video Element

  • Add further properties

  • Create versions, like Embedly video, YouTube video, direct Video URL

Seek to create "super" components that handle a range of situations smoothly, so that a single component can be used in a collection list, linking to multiple video types.

YouTube

Basic YouTube Element

  • Enhanced handling of special URLs

    • YT shorts, and rotated orientation

  • Better responsiveness?

  • Advanced ops like suppressing the pause screen

Last updated