Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Component Library - UI Snippets & BlueprintsNew to Visual Studio Code? Get it now.
Component Library - UI Snippets & Blueprints

Component Library - UI Snippets & Blueprints

fabianogdb

|
22 installs
| (0) | Free
Kit completo de desenvolvimento Laravel: 104 snippets (HTML, CSS, JS, PHP, Blade), gerador de Scaffold CRUD com FormRequests e Policies, módulo de Auth & Permissions, instalação automática de CSS Assets, e documentação interativa com guias passo a passo e blueprints de aplicações.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

📦 Component Library — Kit de Desenvolvimento Laravel para VS Code (v2.1.0)

Extensão completa para VS Code com 104 snippets, 4 comandos automáticos, gerador de Scaffold CRUD avançado, módulo de Auth & Permissions, instalação de CSS Assets e documentação interativa. Tudo para desenvolver aplicações Laravel com produtividade máxima.


📋 Índice

  • Visão Geral
  • Instalação e Setup
  • Comandos da Extensão
  • Catálogo Completo de Snippets
    • Blade (24 snippets)
    • PHP (9 snippets)
    • HTML (34 snippets)
    • CSS (25 snippets)
    • JavaScript (12 snippets)
  • Guia Mestre — Como Criar Qualquer Aplicação Laravel
  • Blueprints de Aplicações Reais
  • Fluxo Real de Trabalho (DX)
  • Boas Práticas
  • Troubleshooting

🎯 Visão Geral

O que é

A Component Library é uma extensão VS Code que acelera o desenvolvimento Laravel oferecendo:

  • 104 snippets organizados por linguagem (Blade, PHP, HTML, CSS, JS)
  • Gerador de Scaffold CRUD com Model, Controller, Migration, FormRequests, Policy e Views
  • Módulo Auth & Permissions com um único comando
  • Instalação de CSS Assets direto no projeto Laravel
  • Documentação interativa com 11 abas dentro do VS Code

Problemas que resolve

Sem a extensão Com a extensão
Criar layout Blade do zero: ~20min cl-blade-layout → 5 segundos
Montar CRUD completo: ~2h Ctrl+Shift+G → 30 segundos
Configurar Auth/Admin: ~30min Ctrl+Shift+A → 10 segundos
Estilizar componentes: ~1h Ctrl+Alt+C → CSS pronto
Lembrar sintaxe @forelse, @can, etc. cl-blade-forelse, cl-auth-can → autocomplete
Criar Controller com filtros e paginação: ~20min cl-controller-filter → pronto
Criar tabela com busca e ações: ~15min cl-blade-table-search → pronto

Proposta de valor

Tudo que você precisa para ir de laravel new até um sistema funcional usando apenas esta extensão. Snippets, comandos, estilos e documentação — integrados.


🚀 Instalação e Setup

Pré-requisitos

  • VS Code v1.74 ou superior
  • Node.js v16+ (para empacotar a extensão)
  • Projeto Laravel (para os comandos de Scaffold, Auth e Assets)

Passo 1: Empacotar a extensão

cd /caminho/para/vscode_component_library_extension
npm install
npx vsce package
# Gera: component-library-snippets-2.1.0.vsix

Passo 2: Instalar no VS Code

Via linha de comando:

code --install-extension component-library-snippets-2.1.0.vsix

Via interface:

  1. Ctrl+Shift+X (Extensions)
  2. Clique em ... → "Install from VSIX..."
  3. Selecione o arquivo .vsix
  4. Reinicie o VS Code

Passo 3: Verificar instalação

  1. Abra um arquivo .blade.php, .php, .html, .css ou .js
  2. Digite cl- e aguarde o IntelliSense
  3. Se não aparecer, pressione Ctrl+Space para forçar sugestões

Como usar snippets no VS Code

  1. Abra um arquivo na linguagem desejada
  2. Digite o prefixo do snippet (ex: cl-blade-layout)
  3. Selecione no IntelliSense e pressione Enter ou Tab
  4. Navegue entre placeholders com Tab / Shift+Tab
  5. Finalize com Escape

Dica: Todos os snippets usam o prefixo cl- para fácil memorização.


⚡ Comandos da Extensão

Comando Atalho O que faz
Component Library: Open Documentation Ctrl+Shift+D Abre documentação interativa com 11 abas no VS Code
Component Library: Generate Scaffold Ctrl+Shift+G Gera CRUD completo (Model, Controller, Migration, FormRequests, Policy, 4 Views, Route)
Component Library: Setup Auth & Permissions Ctrl+Shift+A Configura autenticação com migration is_admin, middleware AdminOnly, views Login/Register, rotas
Component Library: Install CSS Assets Ctrl+Alt+C Gera public/css/components.css e public/css/utilities.css no projeto Laravel

Detalhes do Scaffold (Ctrl+Shift+G)

Entrada:

  1. Nome da classe (ex: Produto)
  2. Campos no formato nome:tipo (ex: nome:string, preco:decimal, ativo:boolean)
  3. Se o CRUD é restrito a administradores (Sim/Não)

Tipos suportados: string, text, integer, decimal, boolean, date, datetime, email

Arquivos gerados (11 no total):

app/Http/Controllers/ProdutoController.php    ← Resource Controller com busca, filtros, paginação
app/Http/Requests/StoreProdutoRequest.php     ← Validação para criação
app/Http/Requests/UpdateProdutoRequest.php    ← Validação para atualização (unique adaptado)
app/Models/Produto.php                        ← Model com $fillable, $casts, scopeSearch
app/Policies/ProdutoPolicy.php                ← Policy com view, create, update, delete, restore, forceDelete
database/migrations/..._create_produtos_table.php
resources/views/produtos/index.blade.php      ← Listagem com busca e paginação
resources/views/produtos/create.blade.php     ← Formulário de criação
resources/views/produtos/edit.blade.php       ← Formulário de edição
resources/views/produtos/show.blade.php       ← Visualização detalhada
routes/web.php                                ← Route::resource injetado automaticamente

Detalhes do Auth (Ctrl+Shift+A)

Gera:

  • Migration para coluna is_admin na tabela users
  • Middleware AdminOnly em app/Http/Middleware/
  • Registro do middleware no Kernel.php
  • Views auth/login.blade.php e auth/register.blade.php
  • Rotas de autenticação em routes/web.php

Detalhes do Install CSS Assets (Ctrl+Alt+C)

Gera:

  • public/css/components.css — Estilos completos para navbar, cards, botões, forms, tabelas, modals, alertas, badges, paginação, spinner, breadcrumb, tabs, dropdown, toast, search bar
  • public/css/utilities.css — Grid 12 colunas, flexbox, spacing (m-, p-), display, cores, tipografia, bordas, sombras

Uso no layout:

<link rel="stylesheet" href="{{ asset('css/components.css') }}">
<link rel="stylesheet" href="{{ asset('css/utilities.css') }}">

📚 Catálogo Completo de Snippets

Blade (24 snippets)

Arquivo: snippets/blade.code-snippets — Linguagem: blade

Estrutura e Layout

Prefixo Descrição Quando usar
cl-blade-layout Layout base completo (app.blade.php) com <!DOCTYPE>, <head>, @yield, <nav>, <footer> Primeiro arquivo de qualquer projeto. Crie em resources/views/layouts/app.blade.php
cl-blade-dashboard Dashboard completo com KPIs, gráfico e lista de atividades Página inicial após login

Páginas CRUD

Prefixo Descrição Quando usar
cl-blade-index Página de listagem completa com busca, tabela e paginação View index.blade.php de qualquer recurso
cl-blade-create Página de cadastro com formulário e validação View create.blade.php
cl-blade-edit Página de edição com formulário preenchido View edit.blade.php
cl-blade-show Página de visualização com detalhes e botão excluir View show.blade.php

Componentes de Tabela

Prefixo Descrição Quando usar
cl-blade-table-search Card com busca + tabela + paginação integrados Quando precisa de tabela com filtro de busca
cl-blade-table-forelse Tabela com @forelse, @empty e ações CRUD (editar/excluir) Quando quer só a tabela, sem card externo

Formulários

Prefixo Descrição Quando usar
cl-blade-form Form com @csrf Formulário de criação simples
cl-blade-form-put Form com @csrf + @method('PUT') Formulário de edição
cl-blade-form-delete Form de exclusão com confirm() Botão de excluir na tabela
cl-blade-form-create Formulário de criação completo com validação Alternativa ao cl-blade-create quando só precisa do form
cl-blade-form-edit Formulário de edição completo com validação Alternativa ao cl-blade-edit quando só precisa do form
cl-blade-input Input completo com old(), @error e classes de validação Cada campo de formulário
cl-blade-error @error com mensagem de feedback Exibição de erro individual
cl-blade-forelse @forelse com @empty fallback Qualquer loop com possibilidade de lista vazia

Autenticação e Autorização

Prefixo Descrição Quando usar
cl-auth-admin @if(auth()->user()->is_admin) Conteúdo visível apenas para admins
cl-auth-user @auth ... @endauth Conteúdo para usuários logados
cl-auth-guest @guest ... @endguest Conteúdo para visitantes
cl-auth-can @can('action', $model) Verificar permissão via Policy
cl-php-can-edit @can('update') com botão/link de editar Botão editar protegido por autorização
cl-php-can-delete @can('delete') com form de exclusão Botão excluir protegido por autorização

Paginação e Relacionamentos

Prefixo Descrição Quando usar
cl-php-pagination-full Paginação com withQueryString() e info "Exibindo X a Y de Z registros" Qualquer listagem paginada
cl-php-related-foreach @foreach para relacionamentos com contagem e fallback Exibir dados relacionados (ex: $post->comments)

PHP (9 snippets)

Arquivo: snippets/php.code-snippets — Linguagem: php

Controllers

Prefixo Descrição Quando usar
cl-controller-index Controller index com search, filtros, ordenação e paginate() Método index com busca e paginação
cl-controller-crud Controller CRUD completo (index, create, store, show, edit, update, destroy) Controller resource completo
cl-controller-filter Controller index com filtros múltiplos (busca, status, categoria), ordenação dinâmica e paginação Quando precisa de vários filtros na listagem

Models

Prefixo Descrição Quando usar
cl-model Model com $fillable, $casts e scopeSearch Model básico
cl-model-full Model completo com $fillable, $casts, relacionamentos (belongsTo, hasMany), SoftDeletes e scopes (scopeActive, scopeSearch) Model com relacionamentos e soft delete

Outros

Prefixo Descrição Quando usar
cl-form-request FormRequest com rules() e messages() customizadas Validação de formulários
cl-migration Migration completa com Schema::create e campos comuns Criar tabela no banco
cl-api-resource API Resource para transformação de dados APIs com Laravel
cl-route-auth Route::resource com middleware auth/verified + grupo admin Definir rotas protegidas

HTML (34 snippets)

Arquivo: snippets/html.code-snippets — Linguagem: html

Layout e Estrutura

Prefixo Descrição
cl-navbar Navbar responsiva com logo, menu e área de ações
cl-container Container responsivo centralizado
cl-row Row do grid
cl-col Coluna do grid
cl-grid Layout completo container + row + colunas

Cards

Prefixo Descrição
cl-card Card com header, body e footer
cl-card-simple Card simples com body

Tabelas

Prefixo Descrição
cl-table Tabela responsiva com striped, hover e ações
cl-table-sortable Tabela com cabeçalhos clicáveis para ordenação

Formulários

Prefixo Descrição
cl-form-group Grupo com label, input e texto de ajuda
cl-form-select Select dropdown com label
cl-form-textarea Textarea com label

Botões

Prefixo Descrição
cl-btn-primary Botão primário (ação principal)
cl-btn-secondary Botão secundário
cl-btn-outline Botão com estilo contornado
cl-btn-danger Botão de perigo/excluir com confirm()
cl-btn-success Botão de sucesso
cl-btn-icon Botão com ícone e texto
cl-btn-group Grupo de botões

Busca e Filtros

Prefixo Descrição
cl-search Formulário de busca com input e botão
cl-search-bar Barra de pesquisa básica
cl-search-icon Barra de pesquisa com ícone integrado
cl-search-filter Barra de pesquisa com filtros dropdown

Selects

Prefixo Descrição
cl-select-basic Select básico com label
cl-select-group Select com optgroups
cl-select-multiple Select com seleção múltipla
cl-select-custom Select com estilo personalizado

Componentes Interativos

Prefixo Descrição
cl-modal Modal acessível com backdrop, header, body e footer
cl-alert Alerta com ícone e botão fechar
cl-badge Badge/tag colorido
cl-spinner Spinner de carregamento
cl-tabs Sistema de abas com navegação e painéis
cl-pagination Componente de paginação
cl-breadcrumb Navegação breadcrumb

CSS (25 snippets)

Organizados em 8 arquivos — Linguagem: css

Design Tokens (css-variables.code-snippets)

Prefixo Descrição
cl-css-root Variáveis :root completas — cores, tipografia, spacing, radius, shadows, transitions
cl-css-colors-palette Paleta customizada com 10 tons (50-900)
cl-css-sizes Variáveis de tamanhos, container widths e breakpoints

Utilitários Gerais (css-utilities.code-snippets)

Prefixo Descrição
cl-css-colors Classes bg-*, text-*, text-align, font-weight/size
cl-css-display Classes d-none, d-flex, d-grid, visible/invisible, overflow, position, w-100/h-100
cl-css-borders Classes border-*, rounded-*, shadow-*

Flexbox (css-flexbox.code-snippets)

Prefixo Descrição
cl-css-flexbox Classes flex-direction, wrap, justify, align, gap
cl-css-flex-container Container flexbox customizável
cl-css-flex-center Centralização com flexbox

Grid (css-grid.code-snippets)

Prefixo Descrição
cl-css-grid Sistema de grid 12 colunas responsivo (col-, col-md-, col-lg-*)
cl-css-grid-template CSS Grid com repeat, minmax, auto-fit
cl-css-grid-areas Layout com grid areas nomeadas

Spacing (css-spacing.code-snippets)

Prefixo Descrição
cl-css-spacing Classes m-0 a m-8, p-0 a p-8, variantes mt-, mb-, mx-, py-, etc.

Botões (css-buttons.code-snippets)

Prefixo Descrição
cl-css-buttons Estilos .btn, variantes primary/secondary/success/danger/outline, tamanhos sm/lg
cl-css-buttons-variants Warning, info, outline variants, btn-icon, btn-group

Formulários (css-forms.code-snippets)

Prefixo Descrição
cl-css-forms Estilos para form-group, form-label, form-control, validação (is-invalid/is-valid)
cl-css-selects Estilos para select, custom arrow, multi-select
cl-css-searchbar Estilos para search-bar, search-with-icon, search-with-filters
cl-css-checkbox-radio Estilos para checkboxes e radios customizados

CSS Consolidado (css.code-snippets)

Prefixo Descrição
cl-css-root Variáveis :root (mesmo de css-variables)
cl-css-spacing Spacing (mesmo de css-spacing)
cl-css-flexbox Flexbox (mesmo de css-flexbox)
cl-css-colors Cores (mesmo de css-utilities)
cl-css-grid Grid (mesmo de css-grid)
cl-css-buttons Botões (mesmo de css-buttons)

Nota: O arquivo css.code-snippets é uma versão consolidada. Os arquivos separados (css-variables, css-flexbox, etc.) oferecem versões mais detalhadas.


JavaScript (12 snippets)

Organizados em 2 arquivos — Linguagem: javascript

Scripts de Componentes (javascript.code-snippets)

Prefixo Descrição Quando usar
cl-js-modal Sistema de modais com acessibilidade, focus trapping e Escape Com o snippet cl-modal
cl-js-tabs Navegação de abas com teclado (Arrow, Home/End) Com o snippet cl-tabs
cl-js-sortable-table Ordenação de tabela por clique no cabeçalho (string, number, date) Com cl-table-sortable
cl-js-alert Fechar alertas com animação fade-out + slide-up Com cl-alert
cl-js-form-validation Validação client-side (required, email, minlength) Qualquer formulário
cl-js-dropdown Menus dropdown com toggle e click-outside Menus de ação

Comportamentos (javascript-behaviors.code-snippets)

Prefixo Descrição Quando usar
cl-js-confirm-delete Confirmação estilo SweetAlert antes de excluir Botões de delete na tabela
cl-js-alert-close Auto-fechar alertas com timer e animação Mensagens flash
cl-js-toggle-password Mostrar/ocultar senha em inputs password Formulários de login/registro
cl-js-image-preview Preview de imagem antes do upload Formulários com upload de foto
cl-js-char-counter Contador de caracteres para textarea Campos com limite de texto
cl-js-toast Sistema de notificações toast flutuantes Feedback de ações (salvar, excluir)

🧩 Guia Mestre — Como Criar Qualquer Aplicação Laravel

Este guia mostra o fluxo universal para criar qualquer sistema usando os snippets e comandos da extensão.

Etapa 1: Setup do Projeto

laravel new meu-projeto
cd meu-projeto

Etapa 2: Instalar CSS Assets

Pressione Ctrl+Alt+C → Gera public/css/components.css e public/css/utilities.css

Etapa 3: Criar Layout Base

Arquivo: resources/views/layouts/app.blade.php Snippet: cl-blade-layout

Gera o layout completo com <!DOCTYPE>, <head>, navbar, @yield('content') e footer. Adicione os links CSS no <head>:

<link rel="stylesheet" href="{{ asset('css/components.css') }}">
<link rel="stylesheet" href="{{ asset('css/utilities.css') }}">

Etapa 4: Gerar CRUD com Scaffold

Pressione Ctrl+Shift+G:

  1. Nome da classe: Produto
  2. Campos: nome:string, preco:decimal, descricao:text, ativo:boolean
  3. Admin? Não

→ 11 arquivos gerados automaticamente. Execute php artisan migrate.

Etapa 5: Configurar Autenticação (se necessário)

Pressione Ctrl+Shift+A → Gera migration, middleware, views de login/register e rotas.

Execute php artisan migrate.

Etapa 6: Personalizar Views

Use os snippets Blade para ajustar as views geradas:

  • Adicionar campo ao formulário: cl-blade-input
  • Proteger botões por permissão: cl-php-can-edit, cl-php-can-delete
  • Paginação completa: cl-php-pagination-full
  • Mostrar relacionamentos: cl-php-related-foreach

Etapa 7: Adicionar Dashboard

Arquivo: resources/views/dashboard.blade.php Snippet: cl-blade-dashboard

Gera dashboard com KPIs, gráficos e lista de atividades.

Etapa 8: Adicionar JavaScript

Use conforme necessidade:

  • cl-js-confirm-delete → Confirmação antes de excluir
  • cl-js-toast → Notificações flutuantes
  • cl-js-toggle-password → Mostrar/ocultar senha
  • cl-js-sortable-table → Tabela ordenável

Resumo do Fluxo

1. laravel new projeto
2. Ctrl+Alt+C          → CSS Assets
3. cl-blade-layout     → Layout base
4. Ctrl+Shift+G        → CRUD completo
5. Ctrl+Shift+A        → Auth (opcional)
6. cl-blade-dashboard  → Dashboard (opcional)
7. cl-js-*             → JavaScript (conforme necessidade)
8. php artisan migrate → Rodar migrations
9. php artisan serve   → Testar

🏗️ Blueprints de Aplicações Reais

Blueprint 1: Sistema de Estoque

Objetivo: CRUD de Produtos com dashboard e controle admin.

Sequência:

Etapa Ação Snippet/Comando
1 Instalar CSS Ctrl+Alt+C
2 Layout base cl-blade-layout
3 Scaffold Produto Ctrl+Shift+G → Produto, nome:string, preco:decimal, quantidade:integer, categoria:string, ativo:boolean
4 Auth + Admin Ctrl+Shift+A
5 Dashboard cl-blade-dashboard
6 Proteger ações cl-php-can-edit + cl-php-can-delete nas views
7 Paginação cl-php-pagination-full na index
8 JavaScript cl-js-confirm-delete + cl-js-toast

Estrutura de arquivos gerada:

resources/views/layouts/app.blade.php     ← cl-blade-layout
resources/views/dashboard.blade.php       ← cl-blade-dashboard
resources/views/produtos/index.blade.php  ← Scaffold
resources/views/produtos/create.blade.php ← Scaffold
resources/views/produtos/edit.blade.php   ← Scaffold
resources/views/produtos/show.blade.php   ← Scaffold
app/Http/Controllers/ProdutoController.php
app/Models/Produto.php
app/Policies/ProdutoPolicy.php

Blueprint 2: Todo List com Prioridades

Objetivo: CRUD de Tarefas com filtros por status e prioridade.

Sequência:

Etapa Ação Snippet/Comando
1 CSS + Layout Ctrl+Alt+C + cl-blade-layout
2 Scaffold Tarefa Ctrl+Shift+G → Tarefa, titulo:string, descricao:text, prioridade:string, status:string, data_limite:date
3 Auth Ctrl+Shift+A
4 Filtros avançados cl-controller-filter no TarefaController
5 Badges de status cl-badge (HTML) nas views

Snippets úteis para customização:

  • cl-blade-table-forelse → Tabela com status como badges
  • cl-blade-input → Campos de formulário
  • cl-php-pagination-full → Paginação mantendo filtros

Blueprint 3: Blog com Categorias

Objetivo: Posts e Categorias com relacionamentos.

Sequência:

Etapa Ação Snippet/Comando
1 CSS + Layout Ctrl+Alt+C + cl-blade-layout
2 Scaffold Categoria Ctrl+Shift+G → Categoria, nome:string, descricao:text
3 Scaffold Post Ctrl+Shift+G → Post, titulo:string, conteudo:text, publicado:boolean, data_publicacao:date
4 Relacionamentos cl-model-full → Adicionar belongsTo(Categoria) no Post
5 Listar relacionados cl-php-related-foreach → Comentários/posts por categoria

Blueprint 4: Cadastro de Clientes

Objetivo: CRUD de clientes com busca e exportação.

Etapa Ação Snippet/Comando
1 CSS + Layout Ctrl+Alt+C + cl-blade-layout
2 Scaffold Cliente Ctrl+Shift+G → Cliente, nome:string, email:email, telefone:string, cidade:string, ativo:boolean
3 Filtro avançado cl-controller-filter
4 Paginação cl-php-pagination-full
5 Proteção cl-auth-can + cl-php-can-edit

🔄 Fluxo Real de Trabalho (DX)

Dia a dia com a extensão

  1. Novo recurso? → Ctrl+Shift+G gera tudo. Customize depois.
  2. Novo campo no form? → cl-blade-input dentro do formulário.
  3. Precisa de permissão? → cl-auth-can ou cl-php-can-edit / cl-php-can-delete.
  4. Tabela com busca? → cl-blade-table-search pronto.
  5. Precisa de modal? → cl-modal (HTML) + cl-js-modal (JS).
  6. Estilizar CSS? → Use cl-css-root para definir variáveis, depois os utilitários.
  7. Documentação? → Ctrl+Shift+D a qualquer momento.

Reduzindo repetição

Tarefa repetitiva Solução
Criar layout em cada projeto cl-blade-layout + Ctrl+Alt+C
Montar CRUD manualmente Ctrl+Shift+G
Copiar blocos de validação cl-blade-input com @error integrado
Escrever @forelse do zero cl-blade-forelse
Configurar auth toda vez Ctrl+Shift+A
Criar CSS de componentes Ctrl+Alt+C instala tudo

Padronização

Todos os snippets seguem as mesmas convenções:

  • Prefixo cl- unificado
  • Classes CSS compatíveis entre HTML snippets e CSS Assets
  • Placeholders com Tab para preenchimento rápido
  • Código Laravel seguindo PSR-12 e boas práticas oficiais

✅ Boas Práticas

Combinação de snippets

Cenário Snippets recomendados
Listagem CRUD completa cl-blade-index ou cl-blade-table-search + cl-php-pagination-full
Formulário com validação cl-blade-form + cl-blade-input (repetir por campo) + cl-blade-error
Formulário de edição cl-blade-form-put + cl-blade-input
Exclusão segura cl-blade-form-delete ou cl-php-can-delete
Controller filtrado cl-controller-filter ou cl-controller-index
Model completo cl-model-full (com relacionamentos) ou cl-model (básico)
Tabela ordenável cl-table-sortable (HTML) + cl-js-sortable-table (JS)
Modal funcional cl-modal (HTML) + cl-js-modal (JS)
Abas funcionais cl-tabs (HTML) + cl-js-tabs (JS)

Organização de código

  • Um layout, muitas views: Crie o layout com cl-blade-layout, estenda com @extends('layouts.app')
  • Snippets Blade em .blade.php: Os snippets cl-blade-* e cl-php-* funcionam em arquivos Blade
  • Snippets PHP em .php: Os snippets cl-controller-*, cl-model-*, etc. funcionam em arquivos PHP
  • CSS primeiro: Rode Ctrl+Alt+C antes de usar os snippets HTML para ter estilos prontos

Segurança Laravel

  • Sempre use @csrf em formulários (já incluído nos snippets cl-blade-form-*)
  • Use @method('PUT'/'DELETE') para métodos HTTP corretos
  • Use FormRequests para validação server-side (cl-form-request ou Scaffold)
  • Use Policies para autorização (cl-auth-can, cl-php-can-edit)
  • Nunca confie em dados do usuário — valide tudo no backend

🛠️ Troubleshooting

Snippet não aparece

Causa: O arquivo não está na linguagem correta.

Snippet Linguagem necessária Extensão do arquivo
cl-blade-*, cl-auth-*, cl-php-* (Blade) Blade .blade.php
cl-controller-*, cl-model-*, cl-migration, etc. PHP .php
cl-navbar, cl-card, cl-table, etc. HTML .html
cl-css-* CSS .css
cl-js-* JavaScript .js

Solução:

  1. Verifique a extensão do arquivo
  2. Verifique a linguagem no canto inferior direito do VS Code
  3. Para Blade: certifique-se que o VS Code reconhece .blade.php como "Blade" (instale extensão de suporte Blade se necessário)

Snippets Blade não aparecem em .blade.php

  1. Instale uma extensão de suporte Blade (ex: "Laravel Blade Snippets" ou "Laravel Blade formatter")
  2. Verifique se a linguagem está como "Blade" e não "HTML" no status bar
  3. Se necessário, clique na linguagem no status bar e selecione "Blade"

Autocomplete não funciona

  1. Pressione Ctrl+Space para forçar o IntelliSense
  2. Verifique em Settings → editor.quickSuggestions → deve estar habilitado para strings
  3. Adicione no settings.json:
{
  "editor.quickSuggestions": {
    "other": true,
    "comments": false,
    "strings": true
  },
  "editor.snippetSuggestions": "top"
}

Scaffold não detecta o projeto Laravel

  • Certifique-se de abrir a pasta raiz do projeto Laravel (onde está o artisan)
  • O arquivo artisan deve estar na raiz do workspace

CSS Assets não funcionam visualmente

  1. Verifique se adicionou os <link> no <head> do layout
  2. Verifique se o servidor está rodando (php artisan serve)
  3. Limpe o cache do navegador (Ctrl+Shift+R)

Conflito entre HTML e Blade

Se snippets HTML (cl-navbar, cl-card) não aparecem em .blade.php:

  • Isso é esperado — snippets HTML são registrados para linguagem html
  • Em Blade, use os snippets cl-blade-* que já incluem os componentes HTML
  • Ou mude temporariamente a linguagem do arquivo para HTML

📁 Estrutura da Extensão

vscode_component_library_extension/
├── package.json                         # Manifesto (v2.1.0)
├── extension.js                         # Lógica dos 4 comandos
├── icon.png                             # Ícone da extensão
├── snippets/
│   ├── blade.code-snippets              # 24 snippets Blade/Laravel
│   ├── php.code-snippets                # 9 snippets PHP/Laravel
│   ├── html.code-snippets               # 34 snippets HTML
│   ├── css.code-snippets                # 6 snippets CSS (consolidado)
│   ├── css-variables.code-snippets      # 3 snippets de design tokens
│   ├── css-utilities.code-snippets      # 3 snippets utilitários
│   ├── css-flexbox.code-snippets        # 3 snippets flexbox
│   ├── css-grid.code-snippets           # 3 snippets grid
│   ├── css-spacing.code-snippets        # 1 snippet spacing
│   ├── css-buttons.code-snippets        # 2 snippets botões
│   ├── css-forms.code-snippets          # 4 snippets formulários
│   ├── javascript.code-snippets         # 6 scripts de componentes
│   └── javascript-behaviors.code-snippets # 6 scripts de comportamento
├── templates/
│   ├── scaffold/                        # Templates do Scaffold CRUD
│   │   ├── controller.template.js
│   │   ├── model.template.js
│   │   ├── migration.template.js
│   │   ├── request.template.js          # Store + Update FormRequests
│   │   ├── policy.template.js
│   │   ├── view-index.template.js
│   │   ├── view-create.template.js
│   │   ├── view-edit.template.js
│   │   └── view-show.template.js
│   ├── auth/                            # Templates de Auth
│   │   ├── migration-add-admin.template.js
│   │   ├── middleware-admin.template.js
│   │   ├── view-login.template.js
│   │   └── view-register.template.js
│   └── assets/                          # Templates de CSS Assets
│       ├── components.template.js
│       └── utilities.template.js
├── docs/
│   └── index.html                       # Documentação interativa (11 abas)
├── examples/
│   ├── listagem-crud.md                 # Blueprint de listagem
│   ├── cadastro-formulario.md           # Blueprint de formulário
│   └── dashboard.md                     # Blueprint de dashboard
└── README.md                            # Este arquivo

🔧 Desenvolvimento

Modo de desenvolvimento

cd vscode_component_library_extension
code .
# Pressione F5 → Nova janela do VS Code com a extensão carregada

Adicionar novo snippet

Edite o arquivo .code-snippets correspondente:

{
  "Nome do Snippet": {
    "prefix": "cl-meu-snippet",
    "body": [
      "<div class=\"meu-componente\">",
      "\t${1:conteúdo}",
      "</div>"
    ],
    "description": "Descrição do snippet"
  }
}

Placeholders:

  • ${1:texto} — Placeholder com valor padrão
  • ${1|op1,op2|} — Placeholder com dropdown de opções
  • $0 — Posição final do cursor
  • \t — Tabulação

📄 Licença

MIT License


🙏 Créditos

Desenvolvido por fabianogdb. Inspirado nas melhores práticas de Laravel e princípios de produtividade (DX).


💡 Dica final: Use Ctrl+Space em qualquer arquivo para ver todos os snippets cl- disponíveis. E use Ctrl+Shift+D para acessar a documentação interativa completa a qualquer momento.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft