Skip to content
Back to skills

Asistec Frontend

ASecurity

Úsalo cuando el usuario necesite crear pantallas, componentes visuales, lógica de cliente (Angular), rutas en Ionic, aplicar estilos SCSS o modificar el frontend.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
developmenttypescriptgoangularfrontend

Works with

  • cli

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill asistec-frontend --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Asistec Frontend?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Asistec Frontend
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-asistec-frontend/badge)](https://www.skillsdirectory.com/skills/david-li0406-asistec-frontend)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: asistec-frontend
description: Úsalo cuando el usuario necesite crear pantallas, componentes visuales, lógica de cliente (Angular), rutas en Ionic, aplicar estilos SCSS o modificar el frontend.
---
# Frontend Expert (Asistec Lab)

Eres el especialista Frontend del proyecto Asistec. Tu objetivo es crear interfaces móviles limpias, rápidas, modulares y expansibles.

## 🛠️ Stack Tecnológico
- **Framework**: Angular 17+ (Arquitectura basada en **NgModules**, NO Standalone).
- **UI Toolkit**: Ionic 7+ (Componentes nativos móviles).
- **Estilos**: Tailwind CSS (Utility-first con patrón @apply).

## 📐 Reglas de Arquitectura & Código

### 1. Estructura del TS de las Páginas (Standalone: false)
Los componentes **NO** son standalone. Deben ser parte de un módulo.
```typescript
@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
  standalone: false,
})
export class HomePage { ... }


## 📐 Reglas de Arquitectura (CRÍTICO)

### 1. Gestión de Componentes Compartidos (ComponentsModule)
**NO** generes componentes con `standalone: true`. Todos los componentes reutilizables (Botones, Headers, Cards) deben ser declarados y exportados en el `ComponentsModule`.

**Flujo de creación de un componente:**
1. Generar el componente (ej: `ng g c components/mi-nuevo-comp`).
2. Ir a `src/app/components/components.module.ts`.
3. Importarlo, Declararlo y Exportarlo.

**Ejemplo de Referencia (`components.module.ts`):**
```typescript
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IonicModule } from '@ionic/angular';
import { FormsModule } from '@angular/forms';
// Importaciones de tus componentes
import { HeaderComponent } from '../header/header.component';
import { ALIItemAccordeonComponent } from '../ali-item-accordeon/ali-item-accordeon.component';

@NgModule({
    declarations: [
        HeaderComponent,
        ALIItemAccordeonComponent,
        // ... agrega aquí los nuevos
    ],
    imports: [
        CommonModule,
        IonicModule,
        FormsModule
    ],
    exports: [
        HeaderComponent,
        ALIItemAccordeonComponent,
        // ... expórtalos para usarlos en las Pages
    ]
})
export class ComponentsModule { }
```

### 2. Estandarización HTML & SCSS (Patrón @apply)
Buscamos limpiar el HTML de largas cadenas de utilidades. Agrupa elementos visuales bajo clases semánticas y aplica estilos en el SCSS.

**Reglas de HTML:**
- Usa nombres de clase descriptivos y estandarizados para agrupar bloques (ej: `.label-contenedor`, `.card-usuario`, `.input-group`).
- Mantén el HTML legible.

**Reglas de SCSS:**
- Usa **siempre** la directiva `@apply` de Tailwind para definir los estilos de esas clases.
- No escribas CSS puro (hexadecimales o medidas en px) si existe una clase de Tailwind para ello.

#### ✅ Ejemplo Correcto:

**HTML (`mi-componente.component.html`):**
```html
<div class="label-contenedor">
  <ion-label>Nombre del Equipo</ion-label>
  <ion-input placeholder="Ej: Osciloscopio"></ion-input>
</div>
```

**SCSS (`mi-componente.component.scss`):**
```scss
.label-contenedor {
  @apply flex flex-col gap-2;
}
```
### 3. Uso de componentes en paginas
Para usar estos componentes en una página (ej: HomePage), NO importes el componente individualmente. Debes importar el ComponentsModule en el módulo de la página.

```TypeScript
import { ComponentsModule } from '../../components/components.module';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    ComponentsModule, // <--- Obligatorio para usar <app-header>
    HomePageRoutingModule
  ],
  declarations: [HomePage]
})
export class HomePageModule {}
```


### 4. Buenas Prácticas Generales
Interfaces: Define modelos de datos en src/app/interfaces/ antes de codificar la vista.

Logica: La lógica compleja va en Servicios, no en el componente.

### 5. Nuevas Páginas y Routing
Al crear una página nueva (ej: `ionic generate page pages/nueva-funcionalidad`):
1. Asegúrate de configurar la ruta en `app-routing.module.ts`.
2. Recuerda importar `ComponentsModule` en el `nueva-funcionalidad.module.ts`.
3. Usa la estructura HTML/SCSS con `@apply` definida arriba.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…