Acordião
O acordião está construído para permitir a disponibilização do conteúdo, colapsado, por grupos dispersos mostrando apenas uma secção de cada vez o que permite poupar espaço vertical ou horizontal e preservar o foco do utilizador por segmentos de informação. O utilizador "clica" no título da secção que pretende visualizar para conseguir ver o conteúdo associado à mesma.
-
O que é o Portal de Ciência e Tecnologia (PCT)?
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Elementum sagittis vitae et leo duis ut. Ut tortor pretium viverra suspendisse potenti.
-
Quais são os tipos de utilizadores que podem aceder ao PCT?
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Elementum sagittis vitae et leo duis ut. Ut tortor pretium viverra suspendisse potenti.
-
Como se acede ao portal?
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Elementum sagittis vitae et leo duis ut. Ut tortor pretium viverra suspendisse potenti.
<!-- A CONSTRUÇÃO DO ACORDIÃO PERSONALIZADO -->
<ul class="accordion no-bullet">
<li class="accordion-item">
<a class="titulo-acordiao">O que é o Portal de Ciência e Tecnologia (PCT)?
<i class="icone-harmonio_descer icone-acordiao"></i>
</a>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Elementum sagittis vitae et leo duis ut.
Ut tortor pretium viverra suspendisse potenti.
</p>
</div>
</li>
<li class="accordion-item"> ... </li>
<li class="accordion-item"> ... </li>
</ul>
<!-- JS para o acordião -->
$('div#content .accordion a').closest('li').find('p').slideUp();
$('div#content .accordion a').click(function(j) {
var dropDown = $(this).closest('li').find('p');
$(this).closest('div#content .accordion').find('p').not(dropDown).slideUp();
if ($(this).hasClass('active')) {
$(this).removeClass('active');
} else {
$(this).closest('div#content .accordion').find('a.active').removeClass('active');
$(this).addClass('active');
}
dropDown.stop(false, true).slideToggle();
j.preventDefault();
});
Adicionar ficheiro
O adicionar ficheiro ou File upload é um mecanismo que deve ser implementado, sempre que necessitamos de fornecer a um site uma ferramenta para colocar ficheiros por sistema de upload.
<!-- A CONSTRUÇÃO DA COMPONENTE - ADICIONAR FICHEIROS / FILE UPLOAD -->
<div class="wrapper">
<a href="txtfileupload">
<i class="icone-adicionar icofileupload"></i>Adicionar ficheiros
</a>
<input type="file" class="foo" id="hiddenfile" multiple />
<div class="hiddentextfile">A totalidade máxima dos ficheiros
não pode ultrapassar<span class="filesize"> 5 Mb.</span>
</div>
</div>
<!-- JS para adicionar ficheiros -->
$("a.txtfileupload").click(function(j) {
$("#hiddenfile").trigger("click");
j.preventDefault();
});
var lstFiles = "";
for(var i = 0; i < this.files.length; ++i){
filesToUpload.push(this.files.item(i));
lstFiles = lstFiles + "<li><a class=\"removeFile\
" href=\"#\" data-fileid=\"" + i + "\"><
i class=\"icone-adicionar\"></i></a>"
+ this.files.item(i).name + "</li>";
}
lstFiles = "<ul>" + lstFiles + "</ul>";
$("#listfilename").append(lstFiles);
});
$(document).on("click",".removeFile", function(e){
e.preventDefault();
var fileName = $(this).parent().text();
for(i = 0; i < filesToUpload.length; ++ i){
if(filesToUpload[i].name === fileName){
filesToUpload.splice(i, 1);
}
}
// remove the <li> element of the removed file from the page DOM
$(this).parent().remove();
});
Alertas
Os 4 tipos de alertas são aviso, sucesso, erro e informação. Os alertas estão tipicamente relacionados com a necessidade de informar o utilizador com o feedback do sistema. A construção desta componente é formada por uma div com a classe box.
Para utilizar os alertas basta adicionar à classe box os atributos box-aviso, box-successo, box-erro ou ainda a box-info.
Aviso
Deixou algum campo com a informação incorreta.
Sucesso
Os campos foram inseridos corretamente.
Erro
Existem campos obrigatórios por preencher!
Informação
O conteúdo deste site foi atualizado em Agosto de 2018.
Título
Quadro simples para informações; Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Exemplo 1 para o alerta com progresso
Exemplo 2 para o alerta com progresso
<!-- OS TIPOS DE ALERTAS -->
(exemplo para a caixa de alerta de aviso)
<div class="box box-aviso">
<button class="btn del_box float-right"></button>
<i class="icone-aviso size_icobox"</i>
<h6 class="title-aviso">Aviso</h6>
<p class="legenda-box">Deixou algum campo com a informação incorreta.</p>
</div>
(exemplo para a caixa standard com conteúdo)
<div class="box">
<button class="btn btn-clear float-right"></button>
<h6Título</h6>
<p class="docs-note">Quadro simples para informações;
Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
$(".startProgress").click(function(j) {
var myBar = $(this).parent().next(".modal").find(".myProgressBar").first();
var baseAnchor = "modals";
var width = 1;
var id = setInterval(frame, 20);
function frame() {
if (width >= 100) {
clearInterval(id);
location.hash = baseAnchor;
} else {
width++;
$(myBar).width (width + '%');
}
}
});
Botões
O botão é um elemento importante nas ações de qualquer site ou aplicação. Nos projetos web da FCT temos cinco tipos de botões estilizados e identificados por uma classe btn que também podem estar nos atributos como <a>, <input> ou <button> e assim adquirir, através da CSS, a formatação que foi desenhada.
A tipologia e os estilos
Ao aplicar a classe btn do botão, temos o estilo que vem por defeito. Com a adição de outras classes podemos visualizar os restantes botões, respetivamente, as classes btn-primary, btn-secondary, e btn-link para o botão primário, secundário e link simples do tema original.
Para um botão sem qualquer acção (estado desabilitado) aplica-se a classe btn-disabled e temos a função e o estilo pretendido.
<!-- OS TIPOS DE BOTÕES -->
<button class="btn">Guardar</button> (exemplo do botão tipo)
<button class="btn btn-primary">Registar</button> ( " " botão primário)
<button class="btn btn-alternativo">Cancelar</button> ( " " botão secundário)
<button class="btn btn-link">link simples</button> ( " " link simples)
<!-- ESTADO DESATIVADO DO BOTÃO -->
<button class="btn-disabled" tabindex="-1">botão desativado</button>
Formulários
Os tipos de campos existem para serem utililizados nos formulários que compõem as aplicações e as plataformas web da FCT. São componentes comuns nas aberturas de concurso e projetos de investigação, estes elementos têm a finalidade de fornecer os dados e as informações que são submetidas. A classe define o estilo e tipo de input/campo com uma determinada função.
Os tipos e estilos definidos
São vários os tipos de campos utilizados nos formulários; Os estilos são controlados por uma class identificada na CSS e HTML da página web.
Dois exemplos bastante comuns de um formulário simples são os campos de input, com e sem "placeholder". Existem mais campos com soluções para:
text area, including input, seletores, checkbox, radio, switch, formulários com validação, entre outros.
<!-- FORMULÁRIOS / CAMPOS COM INPUT -->
<div class="form-group">
<label class="form-label" for="exemplo2 input">With placeholder</label>
<input class="form-input" type="text" id="exemplo2 input"
placeholder="Placeholder">
</div>
Outros exemplos para campos nos formulários.
Ícones, a coleção
A coleção dos ícones personalizados para a FCT, com funções e utilização, estão nesta área do guia. Para aplicar nos projetos web, basta identificar ou adicionar à pasta /css com o nome estilos.themeFCT.icones.css, e o ficheiro spectre.icones.css localizado em /dist da estrutura do projeto. Aplicar as coleções de forma independente só temos que identificar o <head>, do HTML e extrair as CSS dos ícones, que estão também no setor suporte, em "os temas".
ÍCONES COM AÇÕES
ALERTAS, PAINEIS E JANELAS MODAIS
OUTRAS UTILIZAÇÕES DOS ÍCONES
ÍCONES, TEMA ORIGINAL
Aplicar a "classe" ao ícone
<i class="icone-adicionar"></i>
Para colocar em prática a terminologia <i> aplica-se a classe com a identificação de cada ícone, tal como foi feito no exemplo acima.
Download do material
O pack personalizado tem inspiração e utilização das coleções gratuitas dos ícones:
a) Alessio Atzeni - Metrize icons.
b) Ionicons-2.0.1.
O material trabalhado de forma independente para qualquer projeto web da FCT, pode ser descarregado nos links abaixo.
- Font icons, pack completo.
- Material SVG, pack completo.
Janelas modais
Uma janela modal é uma janela secundária que abre dentro do viewport principal do browser. Normalmente, é necessário que os utilizadores interajam com algum elemento da janela modal para voltar à página principal. Sempre que utilizamos uma janela modal devemos salvaguardar a identificação correta da janela, associando-a ao elemento clicado, e providenciar formas de saída / fecho da janela que sejam perceptíveis ou simples de identificar. As caixas ou janelas modais são, em algumas circunstâncias, úteis não apenas para apresentar alertas ou diálogos mas para a visualização de informação ou realização de determinadas ações sem sair do contexto providenciado pela página de origem.
Ao adicionar a classe modal-lg passa a visualizar a janela modal no formato "full size".
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent risus leo, dictum in vehicula sit amet, feugiat tempus tellus. Duis quis sodales risus. Etiam euismod ornare consequat.
Climb leg rub face on everything give attitude nap all day for under the bed. Chase mice attack feet but rub face on everything hopped up on goofballs.
Jelly-o sesame snaps halvah croissant oat cake cookie. Cheesecake bear claw topping. Chupa chups apple pie carrot cake chocolate cake caramels.
Jelly-o sesame snaps halvah croissant oat cake cookie. Cheesecake bear claw topping. Chupa chups apple pie carrot cake chocolate cake caramels.
Jelly-o sesame snaps halvah croissant oat cake cookie. Cheesecake bear claw topping. Chupa chups apple pie carrot cake chocolate cake caramels.
CancelarThis is the content inside the modal.
Lorem ipsum
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent risus leo, dictum in vehicula sit amet, feugiat tempus tellus. Duis quis sodales risus. Etiam euismod ornare consequat.
Climb leg rub face on everything give attitude nap all day for under the bed. Chase mice attack feet but rub face on everything hopped up on goofballs.
Cupcake ipsum
Jelly-o sesame snaps halvah croissant oat cake cookie. Cheesecake bear claw topping. Chupa chups apple pie carrot cake chocolate cake caramels.
De braaaiiiins apocalypsi gorger omero prefrontal cortex undead survivor fornix dictum mauris. Hi brains mindless mortuis limbic cortex soulless creaturas optic nerve.
Candy ipsum
Efficiently unleash cross-media information without cross-media value. Quickly maximize timely deliverables for real-time schemas. Dramatically maintain clicks-and-mortar.
Caerphilly swiss fromage frais. Brie cheese and wine fromage frais chalk and cheese danish fontina smelly cheese who moved my cheese cow.
<!-- OS TIPOS DE JANELAS MODAIS -->
(Janela modal, formato normal)
<div class="modal active" id="modal-id">
<a href="#close" class="modal-overlay" aria-label="Close"></a>
<div class="modal-container">
<div class="modal-header">
<a href="#close" class="btn btn-clear float-right" aria-label="Close"></a>
<div class="modal-title h5">Modal title</div>
</div>
<div class="modal-body">
<div class="content">
<!-- content here -->
</div>
</div>
<div class="modal-footer">
...
</div>
</div>
</div>
(Janela modal, para o formato "full size")
<div class="modal modal-lg">
<a href="#close" class="modal-overlay" aria-label="Close"></a>
<div class="modal-container">
<!-- modal structure here -->
</div>
</div>
Labels
As labels são úteis quando queremos chamar a atenção do utilizador para algo relevante que está no texto.
O obejetivo desta componente é ser uma "tag" identificadora de uma determinada área
que está no conteúdo da página web. o estilo da label está assente nos tons pastel para ser relativamente discreto,
mas que desempenha a sua função. A construção da componente envolve as classes label e
label-rounded que são mais especificas para os conteúdos a destacar nas tabelas.
- Gerais
- Gray/default
- Red - the best
- Green
- Blue
- .
- Yellow
- New/Novo
- Para aplicar nas tabelas
- Disabled
- For Evaluation
- Evaluated
- Conflict
<!-- OS TIPOS DE LABELS -->
(Labels para identificação de grupos ou areas dos conteúdos)
<span class="label">Gray/default</span>
<span class="label label-red">Red - the best</span>
<span class="label label-green">Green</span>
<span class="label label-blue">Blue</span>
<span class="label label-yellow">Yellow</span>
<span class="label label-purple">New/Novo</span>
(Labels para utilizar nos conteúdos para as tabelas)
<span class="label label-rounded label"></span><span class="labeltxt">Disabled</span>
<span class="label label-rounded label-blue"></span><span class="labeltxt">For Evaluation</span>
<span class="label label-rounded label-yellow"></span><span class="labeltxt">Evaluated</span>
<span class="label label-rounded label-re"></span><span class="labeltxt">Conflict</span>
Paineis
As três soluções "tipo" para a utilização dos paineis com os conteúdos de informação ou resumo de formulário, página ou aplicação. Os tipos de paineis estão desenhados e exemplicados em html nesta página. Esta componente tem a finalidade de destacar ou resumir, num contentor, o conteúdo das páginas ou aplicações web.

<!-- OS ESTILOS E TIPOS DE PAINEIS -->
(exemplo para o alerta de aviso)
<div class="box box-warning">
<button class="btn del_box float-right"></button>
<i class="icone-aviso size_icobox"</i>
<h6 class="title-aviso">Aviso</h6>
<p class="legenda-box">Deixou algum campo com a informação incorreta.</p>
</div>
(exemplo para a caixa standard com conteúdo)
<div class="box">
<button class="btn btn-clear float-right"></button>
<h6Título</h6>
<p class="docs-note">Quadro simples para informações; Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
Paginação
A componente da paginação funciona dentro de qualquer "container" ou "div".
Basta identificar a classe pagination e logo de seguida os elementos filhos com as classes page-item.
A classe page-item active permite focar o elemento paginado e a classe page-item disabled
faz com que a primeira fase da paginação esteja desativada.
<!-- PAGINAÇÃO -->
<div class="description section-space">
<ul class="pagination">
<li class="page-item disabled"><a href="#pagination" tabindex="-1">Prev</a></li>
<li class="page-item active"><a href="#pagination">1</a></li>
<li class="page-item"><a href="#pagination">2</a></li>
<li class="page-item"><a href="#pagination">3</a></li>
<li class="page-item"><span>...</span></li>
<li class="page-item"><a href="#pagination">9</a></li>
<li class="page-item"><a href="#pagination">Next</a></li>
</ul>
</div>
$('.page-item').click(function(j) {
$(this).siblings('.page-item').removeClass('active');
$(this).addClass('active');
});
Passos
Os passos são indicadores de progresso
para as sequências das etapas com tarefas. Para a componente funcionar basta identificar a classe step
e adicionar ao elemento filho a classe step-item.
O item do passo em progresso step-item é diferenciado através da classe active,
no próprio passo com o estilo visual.
<!-- PASSOS PARA FORMULÁRIOS - OS MODELOS -->
<ul class="step">
<li class="step-item">
<a href="#" class="tooltip" data-tooltip="Informação sobre este passo">Passo 1</a>
</li>
<li class="step-item">
<a href="#" class="tooltip" data-tooltip="Informação sobre este passo">Passo 2</a>
</li>
<li class="step-item active">
<a href="#" class="tooltip" data-tooltip="Informação sobre este passo">Passo 3</a>
</li>
<li class="step-item">
<a href="#" class="tooltip" data-tooltip="Informação sobre este passo">Passo 4</a>
</li>
</ul>
Tabelas
O modelo mais básico do elemento table identifica-se por <table>. Adicionar classes ao elemento <table> permite modificar o estilo e os tipos da tabela simples. A classe table-striped permite a visualização em modo "zebra"; Com a classe table-hover realçamos cada linha de informação através do "hover" do rato. A classe que destaca de forma ativa e fixa uma linha específica da tablea é a utilização da classe active dentro da <tr>.
| Coordenador | Área Científica | Data do projeto |
|---|---|---|
| Tatiana Coelho Silva Penedo | Artes, Design e Humanidades | 14 de Outubro de 1994 |
| Tiago Alfredo Giboia | Ciências da Engenharia e Tecnologia | 24 de Março de 1972 |
| Vilma Antunes de Carvalho | Ciências da Saúde | 4 de Fevereiro de 1994 |
| Vitor Neves Marciano Pereira da Costa | Ciências Económicas e Empresariais | 22 de Setembro 1999 |
| Zeferina Catarina de Almeida | Educação e Ciências Sociais | 22 de Setembro de 1995 |
<!-- TABELA - MODELO BÁSICO -->
<table class="table table-hover">
<thead>
<tr>
<th>Coordenador</th>
<th>Área Científica</th>
<th>Data do projeto</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tatiana Coelho Silva Penedo</td>
<td>Artes, Design e Humanidades</td>
<td>14 de Outubro de 1994</td>
</tr>
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</tbody>
</table>
O modelo básico e o composto
As tabelas têm dois modelos gerais e a escolha dos tipos de tabela dependem dos conteúdos e dos requisitos funcionais. O modelo básico (apresentado no exemplo de cima) pode apresentar conteúdos de ordem alfabética, alfanumérica e contabilistica. Já no modelo composto podemos encontrar funções sobre conteúdos, isto é ações sobre um registo individual, registos múltiplos, informações com os componentes de paginação, sorting, ou outras.
Ação individual no registo
<-- EXEMPLO 1 -- TABELA, MODELO COMPOSTO -- >
(AÇÃO INDIVIDUAL NO REGISTO)
<table class="table table-hover">
<thead>
<tr>
<th>Principal investigador</th>
<th>Área Científica</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Tatiana Coelho Silva Penedo</td>
<td>Artes, Design e Humanidades</td>
<td>
<a href="#icons-navigation" class="icone_graybot visualizartabelas">
<i class="icone-visualizar"
</a>
</td>
</tr>
<tr>
...
</tr>
</tbody>
</table>
Duas ações por registo
<-- EXEMPLO 2 -- TABELA, MODELO COMPOSTO -- >
(DUAS AÇÕES POR REGISTO)
<table class="table table-hover">
<thead>
<tr>
<th>Coordenador</th>
<th>Área Científica</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Tatiana Coelho Silva Penedo</td>
<td>Artes, Design e Humanidades</td>
<td>colocar o icone </td>
</tr>
<tr>
...
</tr>
</tbody>
</table>
Duas ou mais ações por registo
<-- EXEMPLO 3 -- TABELA, MODELO COMPOSTO -- >
(DUAS OU MAIS AÇÕES POR REGISTO)
<table class="table table-hover">
<thead>
<tr>
<th>Coordenador</th>
<th>Área Científica</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Tatiana Coelho Silva Penedo</td>
<td>Artes, Design e Humanidades</td>
<td>colocar o icone </td>
</tr>
<tr>
...
</tr>
</tbody>
</table>
Tabs
A componente "tabs" identificada por tab-item e a classe adicional "badges" é uma
solução inteligente para as páginas com muita informação!
O separador permite que a página esteja separada por grupos de informação segmentada e organizada de forma sequencial,
sem recurso das páginas individuais ou utilização exagerada do scroll.
<!-- TABS -->
<ul class="tab tab-block">
<li class="tab-item active"><a href="badge" href="#tabs" data-badge="9">Concursos Internos</a></li>
<li class="tab-item"><a href="#tabs" data-badge="99">Concursos externos</a></li>
<li class="tab-item"><a href="#tabs">Outros documentos</a></li>
<li class="tab-presentation-slider"</li>
</ul>
JS da componente
$('.tab-item').click(function(j) {
$(this).siblings('.tab-item').removeClass('active');
$(this).addClass('active');
});
Tooltips
A tooltip existe para aplicar-se em situações onde o contexto não é
suficiente para compreender alguma terminologia. Nestes casos ou recorremos a acrónimos e abreviaturas
(dependendo do caso) ou então nas situações de texto corrido podemos utilizar a tooltip para um "esclarecimento" adicional.
<!-- OS TIPOS DE TOOLTIPS -->
<a class="tooltip tooltip-top espaco" data-tooltip="Olá! Eu sou uma tooltip, em cima :)">
em cima</a> (exemplo da tooltip em cima)
<a class="tooltip tooltip-bottom espaco" data-tooltip="agora estou em baixo...">
por baixo</a> ( " " tooltip em baixo)
<a class="tooltip tooltip-left espaco" data-tooltip="...e agora do lado esquerdo.">
lado esquerdo</a> ( " " tooltip no lado esquerdo)
<a class="tooltip tooltip-right espaco" data-tooltip="Aqui estou eu do lado direito...">
lado direito</a> ( " " tooltip no lado direito)