承接 dannyguevara1/zest 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dannyguevara1/zest

Composer 安装命令:

composer require dannyguevara1/zest

包简介

Laravel component toolkit for rapid UI development

README 文档

README

Zest es una herramienta minimalista para gestionar clases CSS en aplicaciones Laravel. Permite crear, organizar y reutilizar clases CSS mediante un sistema de presets, facilitando el mantenimiento y la consistencia del código.

Características

  • Sistema de presets: Define conjuntos reutilizables de clases CSS
  • API fluida: Utiliza una interfaz de encadenamiento de métodos para construir clases
  • Directivas Blade: Integración con Blade mediante directivas @preset y @presetIf
  • Sin opiniones de estilo: Zest no impone ningún framework CSS o sistema de diseño
  • Liviano y enfocado: Hace una cosa y la hace bien - gestionar clases CSS

Instalación

composer require dannyguevara1/zest

Opcionalmente, publica el archivo de configuración:

php artisan vendor:publish --tag=zest-config

Uso básico

Definiendo presets

Define presets globales en el archivo de configuración o mediante código:

// En config/zest.php
'presets' => [
    'btn' => 'inline-flex items-center justify-center font-medium rounded',
    'btn-primary' => 'bg-blue-600 text-white hover:bg-blue-700',
    'card' => 'bg-white rounded-lg shadow overflow-hidden',
],

// O mediante código
use Dannyguevara1\Zest\Facades\Zest;

Zest::definePreset('btn', 'inline-flex items-center justify-center font-medium rounded');
Zest::definePresets([
    'btn-primary' => 'bg-blue-600 text-white hover:bg-blue-700',
    'card' => 'bg-white rounded-lg shadow overflow-hidden',
]);

Usando presets en vistas Blade

<button class="{{ Zest::preset('btn')->preset('btn-primary') }}">
    Enviar formulario
</button>

Usando la API fluida para combinar clases

<div class="{{ Zest::classBuilder()
    ->add('flex items-center')
    ->preset('card')
    ->addIf($hasError, 'border-red-500')
    ->addIf($isActive, 'border-green-500') }}">
    Contenido
</div>

Usando las directivas de Blade

<button class="@preset('btn') @presetIf($isPrimary, 'btn-primary')">
    Botón
</button>

Organizando tus presets

Recomendamos organizar tus presets con prefijos claros según el tipo de componente:

// Botones
'btn' => 'base-styles...',
'btn-primary' => 'variant-styles...',
'btn-sm' => 'size-styles...',

// Tarjetas
'card' => 'base-styles...',
'card-header' => 'part-styles...',
'card-body' => 'part-styles...',

Integrando con tus componentes Blade

Zest es una herramienta excelente para usar en componentes Blade personalizados:

<!-- resources/views/components/button.blade.php -->
@props(['variant' => 'default', 'size' => 'md'])

<button {{ $attributes->class([
    Zest::preset('btn'),
    Zest::preset('btn-'.$variant),
    Zest::preset('btn-size-'.$size)
]) }}>
    {{ $slot }}
</button>

API

Facade Zest

  • Zest::classBuilder($initialClasses = null): Crea una nueva instancia de ClassComposer
  • Zest::definePreset($name, $classes): Define un preset global
  • Zest::definePresets($presetsArray): Define múltiples presets globales
  • Zest::getPreset($name): Obtiene un preset por su nombre
  • Zest::preset($name): Crea un ClassComposer y aplica un preset

Clase ClassComposer

  • add($classes): Añade clases CSS
  • addIf($condition, $classes): Añade clases CSS condicionalmente
  • preset($name): Aplica un preset
  • presetIf($condition, $name): Aplica un preset condicionalmente

Ejemplos avanzados

Componente de botón

// AppServiceProvider.php
public function boot()
{
    Zest::definePresets([
        'btn' => 'inline-flex items-center justify-center font-medium transition-colors rounded-md',
        'btn-primary' => 'bg-blue-600 text-white hover:bg-blue-700',
        'btn-secondary' => 'bg-gray-200 text-gray-800 hover:bg-gray-300',
        'btn-sm' => 'text-sm px-3 py-1.5',
        'btn-md' => 'px-4 py-2',
        'btn-lg' => 'text-lg px-5 py-3',
    ]);
}
<!-- button.blade.php -->
@props(['variant' => 'primary', 'size' => 'md'])

<button {{ $attributes->class([
    '@preset("btn")',
    '@preset("btn-'.$variant.'")',
    '@preset("btn-'.$size.'")',
]) }}>
    {{ $slot }}
</button>

Componente de tabla

// AppServiceProvider.php
public function boot()
{
    Zest::definePresets([
        'table' => 'min-w-full divide-y divide-gray-200',
        'table-head' => 'bg-gray-50',
        'table-th' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider',
        'table-body' => 'bg-white divide-y divide-gray-200',
        'table-td' => 'px-6 py-4 whitespace-nowrap text-sm text-gray-500',
    ]);
}
<!-- table.blade.php -->
<table class="@preset('table')">
    <thead class="@preset('table-head')">
        <tr>
            @foreach($headers as $header)
                <th class="@preset('table-th')">{{ $header }}</th>
            @endforeach
        </tr>
    </thead>
    <tbody class="@preset('table-body')">
        @foreach($rows as $row)
            <tr>
                @foreach($row as $cell)
                    <td class="@preset('table-td')">{{ $cell }}</td>
                @endforeach
            </tr>
        @endforeach
    </tbody>
</table>

Licencia

MIT

dannyguevara1/zest 适用场景与选型建议

dannyguevara1/zest 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 04 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「ui」 「components」 「laravel」 「blade」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 dannyguevara1/zest 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 dannyguevara1/zest 我们能提供哪些服务?
定制开发 / 二次开发

基于 dannyguevara1/zest 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-09