minimalista
v1.1.1
Published
A old-school based library acting minimalist
Downloads
8
Maintainers
Readme
A old-school based library acting minimalist
To read the english version of this document click here.
Uso 1: Com empacotador estilo Webpack
Em seu terminal com Node rode o comando npm
:
npm i minimalista --save-dev
ou yarn
:
yarn add minimalista --dev
A flag --save-dev
ou --dev
é opcional, boa no caso de usar esta biblioteca somente em pré-build.
Uso 2: type="module"
na tag script
<script src="seu_codigo.js" type="module" charset="utf-8"></script>
Este modo evita necessidade de configuração em outras ferramentas, e traz o módulo diretamente no seu código com essa feature do HTML. Porém, ao usar este deve se atentar a atual compatibilidade da feature nos browsers e sempre servir a página em algum host, como localhost.
Importando para o seu código
// seu_codigo.js
// usando empacotador
var url_pro_modulo_uso1 = "minimalista";
// usando type="module"
var url_pro_modulo_uso2 =
"https://cdn.jsdelivr.net/npm/[email protected]/index.min.js";
import {
getByTag,
getByClass,
getById,
setStyle,
Ajax,
widthBody
} from "url-pro-modulo-aqui";
// necessita string pura, variável não aceitável
Obs: A versão 1.0.0 é menor pois não contém a manipulação de cores, lançada na v1.1.0
Exemplo de Uso Real
// seu_codigo.js
// uso do Ajax
var ajaxProfile = Ajax.send("./user/data.json", "POST");
ajaxProfile.onreadystatechange = function() {
if (Ajax.isReady(this)) {
var userData = Object.values(
JSON.parse(ajaxProfile.responseText)
);
// getById() + getByClass()
// o elemento #user-data de dentro do .profile
var userProfile = getById("user-data", getByClass("profile")[0]);
// uso do getByTag()
// todos os elementos <p> do userProfile
var paragraphs = getByTag("p", userProfile);
// percorrendo os <p>
for (var [p, i] of paragraphs) {
// colocando dados em cada
p.innerText = userData[i][0];
// mudando estilo do <p> dinamicamente
setStyle(p, userData[i][1]); // uso do setStyle()
}
}
};
// Ao alterar o tamanho da janela
window.addEventListener("resize", function() {
// armazena a largura em pixels
var screenWidth = widthBody(); // uso do widthBody()
// 33% ou 50% da tela
var qtdParts = screenWidth > 769 ? 3 : 2;
// todos os .grid-item ganham novo tamanho
setStyle(
getByClass("grid-item"),
`width: ${screenWidth / qtdParts};`
);
// útil quando há conteúdo adicionado dinamicamente
// e seus tamanhos envolvem reposicionamento
});
Exemplo Real Usando Vue
Neste exemplo o módulo é usado em uma extensão para Chrome e Firefox, que muda a página inicial, gerando uma nova cor de texto contrastado com o fundo escolhido pelo usuário.
import { contrast, getRgb, genColor, minCon } from 'minimalista';
export default {
...
data: function() {
return {
min: { contrast, getRgb, genColor, minCon }
};
},
methods: {
getContrasted: function(bg, color = '191c4c') {
const mini = this.min;
// armazena contraste dos 2 RGB
const contrast = mini.contrast(
mini.getRgb(bg),
mini.getRgb(color));
// If contraste é suficiente de acordo com WCAG20
if (contrast > mini.minCon.aa) {
return color;
} else {
// gera nova cor baseada nas atuais
const newColor = mini.genColor(
mini.getRgb(bg),
mini.getRgb(color));
// testa do começo
return this.getContrasted(bg, newColor);
}
}
}
};
Lista de funções
Todas as funções disponíveis, assim como seus parâmetros e retornos, estão explicadas aqui.
Licença
Copyright (c) 2019, Guilherme Correia