You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/pt-PT/3-terrarium/2-intro-to-css/assignment.md

127 lines
7.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Tarefa de Refatoração CSS
## Objetivo
Transforma o teu projeto terrário para usar técnicas modernas de layout CSS! Refatora a abordagem atual de posicionamento absoluto para implementar **Flexbox** ou **CSS Grid** para um design mais sustentável e responsivo. Esta tarefa desafia-te a aplicar os padrões modernos de CSS mantendo a atratividade visual do teu terrário.
Compreender quando e como usar diferentes métodos de layout é uma competência crucial para o desenvolvimento web moderno. Este exercício liga as técnicas tradicionais de posicionamento com sistemas contemporâneos de layout CSS.
## Instruções da Tarefa
### Fase 1: Análise e Planeamento
1. **Revisão do teu código atual do terrário** - Identifica quais elementos estão atualmente a usar posicionamento absoluto
2. **Escolhe o teu método de layout** - Decide se Flexbox ou CSS Grid se adequam melhor aos teus objetivos de design
3. **Faz um esboço da nova estrutura de layout** - Planeia como os contentores e elementos das plantas serão organizados
### Fase 2: Implementação
1. **Cria uma nova versão** do teu projeto terrário numa pasta separada
2. **Atualiza a estrutura HTML** conforme necessário para suportar o método de layout escolhido
3. **Refatora o CSS** para usar Flexbox ou CSS Grid em vez de posicionamento absoluto
4. **Mantém a consistência visual** - Garante que as plantas e o frasco do terrário apareçam nas mesmas posições
5. **Implementa comportamento responsivo** - O teu layout deve adaptar-se de forma suave a diferentes tamanhos de ecrã
### Fase 3: Teste e Documentação
1. **Teste em vários navegadores** - Verifica se o teu design funciona no Chrome, Firefox, Edge e Safari
2. **Teste responsivo** - Verifica o teu layout em dispositivos móveis, tablet e desktop
3. **Documentação** - Adiciona comentários ao teu CSS explicando as opções de layout
4. **Capturas de ecrã** - Captura imagens do teu terrário em diferentes navegadores e tamanhos de ecrã
## Requisitos Técnicos
### Implementação do Layout
- **Escolhe UM**: Implementa Flexbox OU CSS Grid (não ambos para os mesmos elementos)
- **Design Responsivo**: Usa unidades relativas (`rem`, `em`, `%`, `vw`, `vh`) em vez de pixels fixos
- **Acessibilidade**: Mantém uma estrutura HTML semântica adequada e texto alternativo
- **Qualidade do Código**: Usa convenções de nomenclatura consistentes e organiza o CSS de forma lógica
### Funcionalidades Modernas de CSS a Incluir
```css
/* Example Flexbox approach */
.terrarium-container {
display: flex;
flex-direction: column;
min-height: 100vh;
align-items: center;
justify-content: center;
}
.plant-containers {
display: flex;
justify-content: space-between;
width: 100%;
max-width: 1200px;
}
/* Example Grid approach */
.terrarium-layout {
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: auto 1fr;
min-height: 100vh;
gap: 1rem;
}
```
### Requisitos de Suporte aos Navegadores
- **Chrome/Edge**: 2 versões mais recentes
- **Firefox**: 2 versões mais recentes
- **Safari**: 2 versões mais recentes
- **Navegadores móveis**: iOS Safari, Chrome Mobile
## Entregáveis
1. **Ficheiro HTML atualizado** com estrutura semântica melhorada
2. **Ficheiro CSS refatorado** usando técnicas modernas de layout
3. **Coleção de capturas de ecrã** mostrando compatibilidade entre navegadores:
- Visualização desktop (1920x1080)
- Visualização tablet (768x1024)
- Visualização móvel (375x667)
- Pelo menos 2 navegadores diferentes
4. **Ficheiro README.md** documentando:
- A tua escolha de layout (Flexbox vs Grid) e os motivos
- Desafios enfrentados durante a refatoração
- Notas sobre compatibilidade dos navegadores
- Instruções para executar o teu código
## Rubrica de Avaliação
| Critério | Exemplar (4) | Proficiente (3) | Em desenvolvimento (2) | Iniciante (1) |
|----------|--------------|-----------------|-----------------------|---------------|
| **Implementação do Layout** | Uso magistral de Flexbox/Grid com funcionalidades avançadas; totalmente responsivo | Implementação correta com bom comportamento responsivo | Implementação básica com pequenas falhas responsivas | Implementação incompleta ou incorreta do layout |
| **Qualidade do Código** | CSS limpo e bem organizado com comentários úteis e nomenclatura consistente | Boa organização com alguns comentários | Organização adequada com poucos comentários | Organização pobre; difícil de entender |
| **Compatibilidade entre Navegadores** | Consistência perfeita em todos os navegadores exigidos com capturas de ecrã | Boa compatibilidade com pequenas diferenças documentadas | Algumas incompatibilidades que não afetam funcionalidade | Problemas graves de compatibilidade ou falta de testes |
| **Design Responsivo** | Abordagem mobile-first excepcional com pontos de ruptura suaves | Bom comportamento responsivo com pontos de ruptura adequados | Funcionalidades responsivas básicas com algumas falhas no layout | Comportamento responsivo limitado ou ausente |
| **Documentação** | README abrangente com explicações detalhadas e insights | Boa documentação cobrindo todos os elementos necessários | Documentação básica com explicações mínimas | Documentação incompleta ou ausente |
## Recursos Úteis
### Guias de Métodos de Layout
- 📖 [Um Guia Completo para Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
- 📖 [Um Guia Completo para CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/)
- 📖 [Flexbox vs Grid Escolhe a Ferramenta Correta](https://blog.webdevsimplified.com/2022-11/flexbox-vs-grid/)
### Ferramentas de Teste em Navegadores
- 🛠️ [Modo Responsivo das Ferramentas de Desenvolvimento do Navegador](https://developer.chrome.com/docs/devtools/device-mode/)
- 🛠️ [Can I Use Suporte a Funcionalidades](https://caniuse.com/)
- 🛠️ [BrowserStack Teste entre Navegadores](https://www.browserstack.com/)
### Ferramentas de Qualidade de Código
- ✅ [Validador CSS](https://jigsaw.w3.org/css-validator/)
- ✅ [Validador HTML](https://validator.w3.org/)
- ✅ [Verificador de Contraste WebAIM](https://webaim.org/resources/contrastchecker/)
## Desafios Bónus
🌟 **Layouts Avançados**: Implementa Flexbox E Grid em diferentes partes do teu design
🌟 **Integração de Animação**: Adiciona transições ou animações CSS que trabalhem com o teu novo layout
🌟 **Modo Escuro**: Implementa um alternador de tema baseado em propriedades CSS personalizadas
🌟 **Consultas de Contentor**: Usa técnicas modernas de consultas de contentor para responsividade ao nível de componentes
> 💡 **Lembra-te**: O objetivo não é apenas fazê-lo funcionar, mas entender PORQUE o método de layout escolhido é a melhor solução para este desafio de design em particular!
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora esforcemo-nos por garantir a precisão, por favor esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->