AgentStack
SKILL verified Apache-2.0 Self-run

Alpine

skill-terminalskills-skills-alpine · by TerminalSkills

|

No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add skill-terminalskills-skills-alpine

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Alpine? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Alpine.js

Alpine.js adds reactive behavior directly in HTML markup using x- attributes. It's ideal for adding interactivity to server-rendered pages without a build step or SPA framework.

Installation

// main.js — npm module setup
import Alpine from 'alpinejs';
window.Alpine = Alpine;
Alpine.start();

Core Directives


  
  Toggle
  
    This content can be toggled
  

  
  Count: 
  Increment

  
   5">
    Count is greater than 5!
  

Data Binding


  
  
  Hello, !

  
  
    Colored text
  
  
    Blue
    Red
  

  
  
    Dynamic styles
  

Loops


  
    
      
        
        ×
      
    
  

  
    
    Add
  

Event Handling


  
  Prevent default
  Click once
  

  
  

  
  
    Count: 
  

  
  Dispatch

Component Patterns


  
    Menu
    
  

  
    Profile
    Settings
    Logout
  

  
    General
    Security
  

  General settings...
  Security settings...

Reusable Data with Alpine.data


  // Register reusable component
  document.addEventListener('alpine:init', () => {
    Alpine.data('todoList', () => ({
      items: [],
      newItem: '',
      add() {
        if (this.newItem.trim()) {
          this.items.push({ text: this.newItem, done: false });
          this.newItem = '';
        }
      },
      remove(index) {
        this.items.splice(index, 1);
      },
      get remaining() {
        return this.items.filter(i => !i.done).length;
      },
    }));
  });

  
    
    Add
  
  
  
    
      
      
      ×
    
  

Working with htmx


  
    Article Title
    Edit
    Delete
  
  
    
    Save
    Cancel
  

Stores (Global State)


  document.addEventListener('alpine:init', () => {
    Alpine.store('notifications', {
      items: [],
      add(msg) { this.items.push({ text: msg, id: Date.now() }) },
      remove(id) { this.items = this.items.filter(n => n.id !== id) },
    });
  });

Click me

  
    
  

Magic Properties


  
  
  Focus input

  
   $refs.list.scrollTo(0, 99999))">
    Add & scroll
  
  
    
  

  
   console.log('items changed:', val))">

Key Patterns

  • Use x-data on a parent element to define reactive scope — everything inside shares that state
  • Use x-show for toggling visibility (CSS), x-if for conditional DOM insertion
  • Use x-model for two-way binding on inputs, selects, checkboxes
  • Use event modifiers (.prevent, .stop, .debounce, .outside) to reduce boilerplate
  • Use Alpine.data() to extract reusable components with methods and computed properties
  • Use Alpine.store() for global state shared across components
  • Pairs excellently with htmx: Alpine handles UI state, htmx handles server communication

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.