npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

structra

v1.0.1

Published

Dynamic components

Readme

Structra

A Structra é uma biblioteca JavaScript que permite a criação e gerenciamento de componentes HTML de maneira modular, reutilizável e flexível. Ela foi projetada para facilitar a construção de interfaces dinâmicas, simplificando a criação de elementos HTML, a manipulação de atributos, classes e conteúdo de forma intuitiva.


Sumário

  1. Introdução
  2. Instalação
  3. Uso Básico
  4. Estrutura de Componentes
  5. API da Structra
  6. Exemplo Completo
  7. Considerações Finais
  8. Atualizações Futuras

Introdução

A Structra oferece uma maneira eficiente e modular de criar componentes HTML personalizados. Ela permite que você crie componentes reutilizáveis, configure seus atributos, adicione filhos e controle o processo de renderização de maneira simples e eficaz.


Instalação

Com npm (Node Package Manager)

Se você estiver utilizando o Node.js e o npm, basta rodar o seguinte comando:

npm i structra

Com CDN

Você pode também incluir a biblioteca diretamente no seu projeto usando o CDN:

AINDA INDISPONIVEL

Uso Básico

A Structra permite que você crie e renderize componentes HTML de forma muito simples, sem a necessidade de escrever muito código repetitivo. A criação de um componente básico é feita da seguinte maneira:

const myComponent = new Component({
  tag: 'div',
  content: 'Olá, este é um componente simples!'
});

Estrutura de Componentes

Cada componente é uma instância da classe Component, que recebe um objeto de configuração. O principal objetivo da Structra é garantir que seus componentes sejam fáceis de criar, configurar e manipular.

Exemplo de Estrutura de Componente:

const myComponent = new Component({
  tag: 'div',
  id: 'container',
  classes: ['container', 'highlighted'],
  content: 'Bem-vindo à Structra!',
  children: [
    { tag: 'h1', content: 'Título do Componente' },
    { tag: 'p', content: 'Este é um parágrafo dentro do componente.' }
  ]
});

API da Structra

Classe Component

A classe Component é o coração da Structra. Ela representa qualquer componente HTML e oferece um conjunto de métodos para manipulação dos elementos e seus filhos.

Propriedades:

  • element: O elemento DOM gerado pela instância da classe. Pode ser manipulado diretamente.
  • children: Uma lista de instâncias de Component que são filhos do componente atual.

Construtor da Classe Component:

O construtor recebe um objeto de configuração, que define as propriedades do componente.

new Component({
  tag: 'div',
  id: 'meuComponente',
  classes: ['class1', 'class2'],
  content: 'Conteúdo do componente',
  children: [
    { tag: 'p', content: 'Texto do parágrafo' }
  ]
});

Métodos da Classe Component

  • render(parent: HTMLElement): Este método insere o componente no DOM.

    myComponent.render();
    • Renderiza o elemento diretamente no body do documento
    myComponent.render(document.getElementById('custom-container'));
    • Renderiza o elemento em um container específico
  • destroy(): Remove o componente e seus filhos do DOM.

    myComponent.destroy();

Exemplo Completo

Aqui está um exemplo completo de uso da Structra:

// Criando um componente principal
const container = new Component({
  tag: 'div',
  id: 'container',
  classes: ['main-container'],
  content: 'Este é o componente principal!',
  children: [
    { tag: 'h1', content: 'Título principal' },
    { tag: 'p', content: 'Texto de exemplo para um parágrafo.' },
    { tag: 'button', content: 'Clique aqui' }
  ]
});

container.render()

Resultado Esperado:

  • Um div com o ID container, as classes main-container, e o conteúdo "Este é o componente principal!". Dentro dessa div, há três filhos: um título (h1), um parágrafo (p), e um botão (button). O componente será automaticamente inserido no body da página.

Considerações Finais

A Structra foi criada para simplificar a criação de interfaces dinâmicas e componentes reutilizáveis. Sua estrutura modular e flexível permite que você organize e manipule seu código de maneira mais eficiente, sem precisar lidar com complexidade desnecessária. Se você deseja criar interfaces dinâmicas e customizadas, a Structra é uma escolha excelente para seu projeto.


Atualizações Futuras

A Structra está em constante evolução, e algumas das funcionalidades que estamos planejando para versões futuras incluem:

  • Integração com arquivos JSON: Permitir a criação de componentes diretamente a partir de arquivos .json, facilitando a definição da estrutura de componentes de forma dinâmica.

  • Suporte a Templates: Implementação de templates para reutilização de componentes.

  • Otimização e Performance: Melhorias contínuas na renderização e desempenho da biblioteca.

Fique atento às novas atualizações!