Mixins

Mouse Interactions

Cursor Styles

Hover over each box to see the cursor change.

Default

default

Pointer

pointer

Text

text

Move

move

Grab

grab

Grabbing

grabbing

Not Allowed

not-allowed

Wait

wait

Help

help

Crosshair

crosshair

Zoom In

zoom-in

Zoom Out

zoom-out

Resize Cursors

Directional resize cursors.

n-resize

e-resize

s-resize

w-resize

ne-resize

se-resize

sw-resize

nw-resize

ew-resize

ns-resize

col-resize

row-resize

Hover Effects

Interactive hover transitions.

Scale

hover-scale

Lift

hover-lift

Glow

hover-glow

Shadow

hover-shadow

Brighten

hover-brighten

Darken

hover-darken

Rotate

hover-rotate

Shake

hover-shake

Pointer Events

Control element interactivity.

Auto

pointer-auto

None (click through)

pointer-none

Text Selection

Try selecting the text in each box.

Select this text normally

default selection

You cannot select this

user-select: none

Click to select all

user-select: all

Custom selection color

custom ::selection

Scroll Behavior

Scrollable containers with different behaviors.

Smooth scrolling enabled

Scroll down...

Keep scrolling...

More content...

Almost there...

End of content

smooth scroll

Snap 1
Snap 2
Snap 3

scroll snap

Custom Scrollbar

Styled scrollbar appearance.

Custom styled scrollbar

Scroll to see...

Notice the thin bar...

Custom track color...

Custom thumb style...

End of content

custom scrollbar

Hidden scrollbar

But still scrollable...

Keep scrolling...

No visible bar...

Clean look...

End of content

hidden scrollbar

Touch Interactions

Touch-optimized interaction styles.

Touch Target (44px min)

touch-target

touch-feedback

Touch Scroll

touch-scroll

Focus States

Tab through to see focus styles.

default focus

focus-ring

focus-glow

focus-outline

Usage

// Cursor Mixins .button { @include cursor_pointer; } .draggable { @include cursor_grab; &:active { @include cursor_grabbing; } } // Custom cursor .custom { @include cursor_custom('path/to/cursor.png', 'pointer'); } // Hover Effects .card { @include hover_scale(1.05, 0.3s); } .interactive { @include hover_transition(background-color, 0.2s, ease-in-out) { background-color: lighten($primary, 10%); } } // Pointer Events .overlay { @include pointer_events(none); } // Text Selection .no-select { user-select: none; } body { @include custom-selection(#3b82f6, #ffffff); } // Scroll Behavior .container { @include scroll_smooth(true, true); } .carousel { @include scroll_snap('x mandatory', 'center'); }