#

#

SC Tag Display

SC Tag Display

SC Tag Display

Aug 28, 2025

0 views

A lightweight tag/chip renderer for Framer. Feed it a comma-separated list and it outputs accessible, responsive pills with configurable padding, gap, border, and colors. If your primary typeface ships a “Variable” face (e.g., Recursive Variable), you can animate axes on hover for a subtle, high-end typographic feel.

Lilac Flower
Lilac Flower
Lilac Flower
Lilac Flower
#
Built With
React, CSS, Framer Code Component API
#
Layout Support
Fully Responsive (auto-wrap)
#
Orientation
Inline Tag List
#
Ideal Use Case
Metadata chips, taxonomy tags, blog/category badges, filters
#
Built With
React, CSS, Framer Code Component API
#
Layout Support
Fully Responsive (auto-wrap)
#
Orientation
Inline Tag List
#
Ideal Use Case
Metadata chips, taxonomy tags, blog/category badges, filters
#
Built With
React, CSS, Framer Code Component API
#
Layout Support
Fully Responsive (auto-wrap)
#
Orientation
Inline Tag List
#
Ideal Use Case
Metadata chips, taxonomy tags, blog/category badges, filters

//

Tags

tags
chips
badges
variable fonts
hover
typography
UI
pills
//
Technologies
None (no external libraries)
//
Notes
Variable-font animation requires a variable face in your first family (e.g., “Recursive Variable”).
//
Technologies
None (no external libraries)
//
Notes
Variable-font animation requires a variable face in your first family (e.g., “Recursive Variable”).
//
Technologies
None (no external libraries)
//
Notes
Variable-font animation requires a variable face in your first family (e.g., “Recursive Variable”).
#
Logic Level
Low (string split + style)
#
Runtime Cost
Very Low (static DOM, simple hover transitions)
#
Component Size
~2–3 KB (raw TSX)
#
Notes
Very large tag counts create many DOM nodes—paginate or truncate if needed.
#
Logic Level
Low (string split + style)
#
Runtime Cost
Very Low (static DOM, simple hover transitions)
#
Component Size
~2–3 KB (raw TSX)
#
Notes
Very large tag counts create many DOM nodes—paginate or truncate if needed.
#
Logic Level
Low (string split + style)
#
Runtime Cost
Very Low (static DOM, simple hover transitions)
#
Component Size
~2–3 KB (raw TSX)
#
Notes
Very large tag counts create many DOM nodes—paginate or truncate if needed.
  1. Set Data to a comma-separated list, e.g. UI, Motion, Generative.

  2. Choose Tag BG, Text, Hover BG; adjust Padding, Gap, and Border.

  3. Enable Variable Font and tune Axes (MONO/CASL/CRSV/slnt/wght).

  4. Toggle Hover Axes to morph typography on hover (e.g., wght: 600 → 700).

  5. Bind to CMS by mapping a text field into Data.

  • Minimal: gap=6, padding=4px 8px, border width=0.

  • Bold hover: base wght=500 → hover wght=700; subtle bg shift.

  • Neutral UI chips: BG #F3F3F3, text #111, border #DDD, radius=8.

  • Parses data by commas → trims → filters empties → maps into <div> pills.

  • Computes a font stack; if Variable Font is on, first family is coerced to its " Variable" face (e.g., Recursive → Recursive Variable).

  • Builds CSS font-variation-settings strings from Axes; if "wght" is present, CSS font-weight is omitted to avoid conflicts.

  • On hover, swaps background and (optionally) variation settings for smooth axis interpolation.

  • Static layout—no RAF, no listeners.

  • Prefer shorter tag lists for mobile; keep Gap small to reduce line wraps.

  • When animating wght, keep deltas modest (e.g., 500→650) for cleaner interpolation.

  • Works in modern evergreen browsers.

  • Variable-font axes require a variable face installed/loaded; otherwise fallback to classic font-weight.

  • Right-to-left languages: tags render left-to-right by default; wrap in an RTL container if needed.

  • Tags are static text by default; if interactive, wrap each in a button/link and provide aria-labels.

  • Ensure color contrast for text vs. background (WCAG AA).

  • No dangerouslySetInnerHTML; tags are plain strings.

  • No network calls; no data stored.

  • Be mindful not to inject untrusted CSS tokens into data.

Name

Type

Default

Description

data

string

“tag 1, tag 2, tag 3”

Comma-separated tags

tagBackgroundColor

string(Color)

#F3F3F3

Default chip background

tagTextColor

string(Color)

#000

Chip text color

tagHoverBackgroundColor

string(Color)

#E0E0E0

BG on hover

font

object(FontValue)

Family/size/weight/spacing/style

border.color

string(Color)

#CCC

Border color

border.width

number

1

Border width (px)

border.radius

number

6

Corner radius (px)

padding

string

“6px 10px”

Chip padding

gap

number

8

Gap between chips (px)

variableAxes

boolean

true

Enable variable-font axes

axes

object(Axes)

see defaults

Base axes (MONO/CASL/CRSV/slnt/wght/cssFontWeight)

variableAxesHover

boolean

true

Enable hover axes morph

hoverAxes

object(Axes)

see defaults

Hover axes

name:data
type:string
default:“tag 1, tag 2, tag 3”
desc:Comma-separated tags
name:tagBackgroundColor
type:string(Color)
default:#F3F3F3
desc:Default chip background
name:tagTextColor
type:string(Color)
default:#000
desc:Chip text color
name:tagHoverBackgroundColor
type:string(Color)
default:#E0E0E0
desc:BG on hover
name:font
type:object(FontValue)
default:
desc:Family/size/weight/spacing/style
name:border.color
type:string(Color)
default:#CCC
desc:Border color
name:border.width
type:number
default:1
desc:Border width (px)
name:border.radius
type:number
default:6
desc:Corner radius (px)
name:padding
type:string
default:“6px 10px”
desc:Chip padding
name:gap
type:number
default:8
desc:Gap between chips (px)
name:variableAxes
type:boolean
default:true
desc:Enable variable-font axes
name:axes
type:object(Axes)
default:see defaults
desc:Base axes (MONO/CASL/CRSV/slnt/wght/cssFontWeight)
name:variableAxesHover
type:boolean
default:true
desc:Enable hover axes morph
name:hoverAxes
type:object(Axes)
default:see defaults
desc:Hover axes

Name

Type

Default

Description

name:data
type:string
default:“tag 1, tag 2, tag 3”
desc:Comma-separated tags
name:tagBackgroundColor
type:string(Color)
default:#F3F3F3
desc:Default chip background
name:tagTextColor
type:string(Color)
default:#000
desc:Chip text color
name:tagHoverBackgroundColor
type:string(Color)
default:#E0E0E0
desc:BG on hover
name:font
type:object(FontValue)
default:
desc:Family/size/weight/spacing/style
name:border.color
type:string(Color)
default:#CCC
desc:Border color
name:border.width
type:number
default:1
desc:Border width (px)
name:border.radius
type:number
default:6
desc:Corner radius (px)
name:padding
type:string
default:“6px 10px”
desc:Chip padding
name:gap
type:number
default:8
desc:Gap between chips (px)
name:variableAxes
type:boolean
default:true
desc:Enable variable-font axes
name:axes
type:object(Axes)
default:see defaults
desc:Base axes (MONO/CASL/CRSV/slnt/wght/cssFontWeight)
name:variableAxesHover
type:boolean
default:true
desc:Enable hover axes morph
name:hoverAxes
type:object(Axes)
default:see defaults
desc:Hover axes
  • Tags are static text by default; if interactive, wrap each in a button/link and provide aria-labels.

  • Ensure color contrast for text vs. background (WCAG AA).

  • No dangerouslySetInnerHTML; tags are plain strings.

  • No network calls; no data stored.

  • Be mindful not to inject untrusted CSS tokens into data.

Component design & implementation by SecretoCho Design.


SecretoCho Design 2025

Provided “as is.” Validate accessibility, licensing for fonts, and performance in your project before shipping.

Stay ahead of the curve with insights into emerging visualization trends and technologies.