Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Construindo um framework CSS - A Teoria
Search
Diego Eis
April 22, 2013
Programming
4
300
Construindo um framework CSS - A Teoria
Entenda a teoria e o conceito de construção de um framework CSS.
Diego Eis
April 22, 2013
Tweet
Share
More Decks by Diego Eis
See All by Diego Eis
Carreira de Product Manager em 18 minutos
diegoeis
1
1.6k
O que é o Product Oversee
diegoeis
0
4.5k
Gestão Moderna de Produtos/Serviços Digitais
diegoeis
4
20k
Métricas, Indicadores e Comportamento do Usuário
diegoeis
2
4.9k
Service Dominant Logic - S-D Logic em Produtos Digitais
diegoeis
0
1.4k
Métricas para times Ágeis usando Estatística Básica
diegoeis
0
490
O básico sobre Web Semântica, JSON-LD e Linked Data
diegoeis
2
230
A falácia do Dev Full Stack e organização de quipes
diegoeis
0
260
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
diegoeis
2
190
Other Decks in Programming
See All in Programming
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
230
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
4
1.1k
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
110
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
0
410
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
740
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
410
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
240
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.3k
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
250
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
TanStack DB ~状態管理の新しい考え方~
bmthd
2
480
コンテキストエンジニアリング Cursor編
kinopeee
1
760
Featured
See All Featured
Site-Speed That Sticks
csswizardry
10
810
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
800
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Building Adaptive Systems
keathley
43
2.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Speed Design
sergeychernyshev
32
1.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Transcript
FRAMEWORK CSS Iniciando a construção de um framework A TEORIA
Diego Eis @diegoeis @tableless
None
Por que criar um framework?
Prototipação A equipe precisa criar protótipos funcionais rápidos com a
estruturação parecida com a final.
Padronização Padronização de estrutura, elementos, código, comportamentos, experiências etc etc
etc.
Produtividade Menos tempo desenhando ou codificando cenários já conhecidos.
Manutenção Facilitar a manutenção diminuindo o tempo de retrabalho.
Por que NÃO criar um framework?
Layouts muito diferentes Layouts ou elementos com a estrutura e
visual diferentes.
O código não para de crescer O código vai ficar
cada vez maior, cada vez mais pesado, com possibilidade de conflitos.
Tempo Você vai precisar dedicar sua equipe integralmente para cuidar
do framework. Pelo menos no início do projeto.
Por que já existem outros no mercado Os que existem
podem te ajudar melhor, além de contar com documentação e manual prontos.
Locaweb Style
Precisávamos resolver alguns problemas
O processo Processos incompletos prejudicam a qualidade do código, do
produto e da entrega.
Excesso de projetos São diversos projetos ao mesmo tempo, com
equipes trabalhando paralelamente.
Liberar gargalos Os times de design e de front-end eram
gargalos constantes. Precisávamos agilizar o processo.
Conversamos com o pessoal de UX O processo se inicia
lá. São eles que pensarão nos comportamentos, design etc.
Burocracia
Conversamos com o pessoal de Back-end Eles terão contato direto
com o código front-end e também poderão implementar algo sem depender de ninguém.
Escolhemos a base Iríamos usar Bootstrap e JQuery. Não iríamos
utilizar nenhum pré-processador como LESS ou SASS.
Customização de design e comportamentos Pegamos o layout criado por
UX e começamos a customizar ou criar elementos.
Padronização de código Iniciamos um trabalho de nomenclatura e padronização
de escrita de código.
Um exemplo: CSS incremental Incremente classes para ajudar na customização
de elementos.
.btn .btn .btn-large .btn .btn-large .btn-primary .btn .btn-large .btn-primary .ico-star
<a href=”#”>Um botão</a>
Outro exemplo: Javascript organizado Se o javascript não estiver bem
estruturado, ele vai puxar seu pé na cama.
$(window).load(function() { window.locastyle = new Locastyle(); locastyle.base.init($(document)); }); Aqui iniciamos
o objeto Locastyle, que vai carregar as funções do projeto. init.js
Locastyle = (function() { Locastyle.prototype.base = { init: function (dom_scope)
{ this.toggleTextOnClick(dom_scope); this.toggleTextOnHover(dom_scope); this.datePickerSetup(dom_scope, this.datePickerOptions); this.numbersOnly(dom_scope); this.activateCollapseOnShown(dom_scope); this.deactivateCollapseOnHide(dom_scope); this.htmlForceClass(dom_scope); this.disableClass(dom_scope); this.classParentLiMenu(dom_scope); this.modalAutoFocus(dom_scope); this.preventDefaultOnDisabled(dom_scope); this.openCollapsesWithError(dom_scope); this.autoOpenModal(dom_scope); this.pathWayStepCounter(dom_scope); this.setListDetailSeparator(); this.advancedSearchValueHandler(dom_scope); this.toggleChild(dom_scope); this.toggleChildValue(dom_scope); this.inputDataValue(dom_scope); this.carouselCounter(dom_scope); this.initCustomSelect(dom_scope); this.collapseSetAnchor(); this.notificationInfoSet(); this.notificationInfoHandler(); this.minShortcutsCookieSetter(); this.minShortcutsCookieHandler(); this.coverAllLink(dom_scope); this.linkPreventDefault(); this.popover(dom_scope); }, script.js Aqui chamamos e executamos todas as funções do projeto.
Cuidados
Escolha um bom framework para sua base Você não precisa
começar nada do zero. Mas sua base precisa ser firme para você crescer.
O designer é seu amigo Padrões visuais andam junto com
os padrões de código. Defina com o designer quais serão os padrões dos elementos básicos: GRID, botões, tipografia, espaços e medidas.
Nomenclatura bem definida Misturar nomes em inglês com portugues confunde.
Nomes grandes confundem. Vai usar traço, underline ou camelCase?
Faça código reutilizável desde o início Um framework é como
um quebra cabeças, onde você junta as peças para criar novas formas e estruturas.
Tenha uma documentação ou um manual Uma documentação ou um
manual com exemplos vai ajudar a adoção do framework em novos projetos.
Cresça com paciência Não coloque plugins que você ACHA que
vai usar. Não solucione problemas que você ACHA que vão surgir.
A exceção não é padrão Quando há muitas exceções, nenhum
padrão está sendo criado. Designers e devs front-end precisam usar elementos já criados para montar layouts.
Work in Progress Seu framework nunca estará pronto. Você sempre
vai criar, refazer ou modificar as features.
AMPLEXOS Diego Eis @diegoeis @tableless tableless.com.br