Browse Source
spipr (pour spip reboot) est une famille de squelettes qui repose sur Z+BootStrap(+less)+html5 3 variantes de squelettes : spipr-dist : un squelette generique par defaut spipr-blog : un squelette de blog spipr-doc : un squelette de doc (pour un minisite de doc de quelques pages comme celui de bootstrap par exemple) + un 4e squelette complet multifonction configurable qui est la version 4.0 de SarkaSpip Des themes de base dans spipr/v1 (on versionne preventivement), adaptes de bootswatch Tout ca est encore en DEVELOPPEMENT, des choses sont suceptibles de bouger avec casse de la compatibilite (notamment revision de la typo car SPIP a mieux a proposer que BootStrap, et squelettes/conventions des listes d'objet) Documentation a venir. Merci de ne pas utiliser en production pour le moment.master

commit
56df47e776
10 changed files with 613 additions and 0 deletions
@ -0,0 +1,10 @@
|
||||
* text=auto !eol |
||||
/body.html -text |
||||
css/bootswatch.less -text |
||||
css/layouts.less -text |
||||
css/navbar.less -text |
||||
css/responsive.less -text |
||||
css/theme.less -text |
||||
css/variables.less -text |
||||
/plugin.xml -text |
||||
/vignette.png -text |
@ -0,0 +1,32 @@
|
||||
<body> |
||||
<div class="page"> |
||||
<div class="container"> |
||||
<div class="header" id="header"> |
||||
<INCLURE{fond=header/#ENV{type-page},env} /> |
||||
</div> |
||||
</div> |
||||
<div class="navbar navbar-inverse row" id="nav"> |
||||
<div class="navbar-wrap span12"> |
||||
<INCLURE{fond=inclure/nav,env} /> |
||||
</div> |
||||
</div> |
||||
<div class="container"> |
||||
<div class="row wrapper"> |
||||
<div class="content primary span8" id="content"> |
||||
<INCLURE{fond=content/#ENV{type-page},env} /> |
||||
</div> |
||||
<div class="aside secondary span3 " id="aside"> |
||||
<INCLURE{fond=aside/#ENV{type-page},env} /> |
||||
</div> |
||||
<div class="extra secondary span3 " id="extra"> |
||||
<INCLURE{fond=extra/#ENV{type-page},env} /> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div class="footer" id="footer"> |
||||
<div class="container"> |
||||
<INCLURE{fond=footer/#ENV{type-page},env} /> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</body> |
@ -0,0 +1,182 @@
|
||||
// Bootswatch.less |
||||
// Swatch: Cerulean |
||||
// Version: 2.1.1 |
||||
// ----------------------------------------------------- |
||||
|
||||
// TYPOGRAPHY |
||||
// ----------------------------------------------------- |
||||
|
||||
@import url(https://fonts.googleapis.com/css?family=Telex); |
||||
|
||||
// SCAFFOLDING |
||||
// ----------------------------------------------------- |
||||
|
||||
// NAVBAR |
||||
// ----------------------------------------------------- |
||||
|
||||
.navbar { |
||||
|
||||
|
||||
.brand { |
||||
padding: 14px 20px 16px; |
||||
font-family: @headingsFontFamily; |
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); |
||||
} |
||||
|
||||
li { |
||||
line-height: 20px; |
||||
} |
||||
|
||||
.nav > li > a { |
||||
padding: 16px 10px 14px; |
||||
font-family: @headingsFontFamily; |
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); |
||||
} |
||||
|
||||
.search-query { |
||||
border: 1px solid darken(@linkColor, 10%); |
||||
} |
||||
|
||||
.btn-navbar:hover { |
||||
background-color: darken(@white, 20%); |
||||
} |
||||
|
||||
.navbar-text { |
||||
padding: 19px 10px 18px; |
||||
line-height: 13px; |
||||
color: rgba(0, 0, 0, 0.5); |
||||
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); |
||||
} |
||||
|
||||
&-inverse { |
||||
|
||||
.navbar-search .search-query { |
||||
color: @textColor; |
||||
} |
||||
} |
||||
} |
||||
|
||||
@media (max-width: @navbarCollapseWidth) { |
||||
|
||||
.navbar .nav-collapse { |
||||
|
||||
.nav li > a { |
||||
|
||||
font-family: @headingsFontFamily; |
||||
font-weight: normal; |
||||
color: @white; |
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); |
||||
|
||||
&:hover { |
||||
background-color: #2B7CAC; |
||||
} |
||||
} |
||||
|
||||
.nav .active > a { |
||||
.box-shadow(none); |
||||
background-color: #2B7CAC; |
||||
} |
||||
|
||||
.dropdown-menu li > a:hover, |
||||
.dropdown-menu li > a:focus, |
||||
.dropdown-submenu:hover > a { |
||||
background-image: none; |
||||
} |
||||
|
||||
.navbar-form, |
||||
.navbar-search { |
||||
border: none; |
||||
} |
||||
|
||||
.nav-header { |
||||
color: #2B7CAC; |
||||
} |
||||
} |
||||
|
||||
.navbar-inverse .nav-collapse { |
||||
|
||||
.nav li > a { |
||||
color: @navbarInverseLinkColor; |
||||
|
||||
&:hover { |
||||
background-color: rgba(0, 0, 0, 0.1); |
||||
} |
||||
} |
||||
|
||||
.nav .active > a { |
||||
background-color: rgba(0, 0, 0, 0.1); |
||||
} |
||||
} |
||||
} |
||||
|
||||
div.subnav { |
||||
|
||||
font-family: @headingsFontFamily; |
||||
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2); |
||||
|
||||
&-fixed { |
||||
top: @navbarHeight; |
||||
} |
||||
} |
||||
|
||||
// NAV |
||||
// ----------------------------------------------------- |
||||
|
||||
// BUTTONS |
||||
// ----------------------------------------------------- |
||||
|
||||
.btn { |
||||
#gradient > .vertical-three-colors(@white, @white, 5%, darken(@white, 0%)); |
||||
@shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
||||
.box-shadow(@shadow); |
||||
|
||||
&:hover { |
||||
background-position: 0 0; |
||||
} |
||||
} |
||||
|
||||
.btn-primary { |
||||
.buttonBackground(lighten(@btnPrimaryBackground, 5%), @btnPrimaryBackground); |
||||
} |
||||
|
||||
.btn-info { |
||||
.buttonBackground(lighten(@btnInfoBackground, 5%), @btnInfoBackground); |
||||
} |
||||
|
||||
.btn-success { |
||||
.buttonBackground(lighten(@btnSuccessBackground, 5%), @btnSuccessBackground); |
||||
} |
||||
|
||||
.btn-warning { |
||||
.buttonBackground(lighten(@btnWarningBackground, 5%), @btnWarningBackground); |
||||
} |
||||
|
||||
.btn-danger { |
||||
.buttonBackground(lighten(@btnDangerBackground, 5%), @btnDangerBackground); |
||||
} |
||||
|
||||
.btn-inverse { |
||||
.buttonBackground(lighten(@btnInverseBackground, 5%), @btnInverseBackground); |
||||
} |
||||
|
||||
// TABLES |
||||
// ----------------------------------------------------- |
||||
|
||||
// FORMS |
||||
// ----------------------------------------------------- |
||||
|
||||
// DROPDOWNS |
||||
// ----------------------------------------------------- |
||||
|
||||
// ALERTS, LABELS, BADGES |
||||
// ----------------------------------------------------- |
||||
|
||||
// MISC |
||||
// ----------------------------------------------------- |
||||
|
||||
i[class^="icon-"]{ |
||||
opacity: 0.8; |
||||
} |
||||
|
||||
// MEDIA QUERIES |
||||
// ----------------------------------------------------- |
@ -0,0 +1,5 @@
|
||||
@import "bootstrap/css/layouts.less"; |
||||
|
||||
#content{float:right;} |
||||
#aside{float:left;} |
||||
#extra{float:left;clear:left;} |
@ -0,0 +1,19 @@
|
||||
@import "bootstrap/css/navbar.less"; |
||||
|
||||
.navbar.row {margin-left: 0;} |
||||
.navbar .navbar-wrap { |
||||
float: none; |
||||
display: block; |
||||
margin-left: auto; |
||||
margin-right: auto; |
||||
} |
||||
.navbar { |
||||
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground); |
||||
} |
||||
.navbar-inverse { |
||||
#gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground); |
||||
} |
||||
.navbar-inner { |
||||
border: 0; |
||||
.border-radius(0); |
||||
} |
@ -0,0 +1,32 @@
|
||||
@import "bootstrap/css/responsive.less"; |
||||
|
||||
@media (max-width: 767px) { |
||||
|
||||
// Padding to set content in a bit |
||||
body { |
||||
padding-left: 0px; |
||||
padding-right: 0px; |
||||
} |
||||
.container { |
||||
margin-left: 20px; |
||||
margin-right: 20px; |
||||
} |
||||
.navbar .container { |
||||
margin-left: 0px; |
||||
margin-right: 0px; |
||||
} |
||||
|
||||
#content { |
||||
border-bottom: 1px solid darken(@wellBackground, 7%); |
||||
margin-bottom :2em; |
||||
float: none; |
||||
} |
||||
|
||||
#aside {float:left;width:47.5%;} |
||||
#extra {float:right;width:47.5%;clear: none;} |
||||
|
||||
} |
||||
@media (max-width: 450px) { |
||||
#aside {float:none;width:100%;} |
||||
#extra {float:none;width:100%;} |
||||
} |
@ -0,0 +1,24 @@
|
||||
@import "css/variables.less"; |
||||
@import "css/mixins.less"; |
||||
|
||||
.header {position: relative;} |
||||
.header .accueil a {color: inherit;} |
||||
.header .spip_logos {float:left;margin: @paddingLarge;margin-left: 0;margin-top:0;} |
||||
#slogan_site_spip {display: block;} |
||||
|
||||
.header .formulaire_menu_lang {width: 100%;} |
||||
.header .formulaire_menu_lang select {width: 100%;} |
||||
|
||||
body {background-color: @wellBackground;} |
||||
.page {background-color: @white;} |
||||
.footer { |
||||
background-color: @wellBackground; |
||||
border-top: 1px solid darken(@wellBackground, 7%); |
||||
.box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); |
||||
margin-top:10em;padding-bottom: 10em;padding-top: 5em; |
||||
font-size: @fontSizeSmall; |
||||
text-align: right; |
||||
} |
||||
|
||||
.cartouche {margin-bottom: @baseLineHeight;} |
||||
.content-principal {.clearfix} |
@ -0,0 +1,297 @@
|
||||
// |
||||
// Variables |
||||
// Swatch: Cerulean |
||||
// Version: 2.1.1 |
||||
// -------------------------------------------------- |
||||
|
||||
|
||||
// GLOBAL VALUES |
||||
// -------------------------------------------------- |
||||
|
||||
|
||||
// Grays |
||||
// ------------------------- |
||||
@black: #000; |
||||
@grayDarker: #222; |
||||
@grayDark: #333; |
||||
@gray: #555; |
||||
@grayLight: #999; |
||||
@grayLighter: #F5F5F5; |
||||
@white: #fff; |
||||
|
||||
|
||||
// Accent colors |
||||
// ------------------------- |
||||
@blue: #3E78B3; |
||||
@blueDark: #033C73; |
||||
@green: #73A839; |
||||
@red: #C71C22; |
||||
@yellow: #F7B42C; |
||||
@orange: #DD5600; |
||||
@pink: #F49AC1; |
||||
@purple: #9760B3; |
||||
|
||||
|
||||
// Scaffolding |
||||
// ------------------------- |
||||
@bodyBackground: @white; |
||||
@textColor: @gray; |
||||
|
||||
|
||||
// Links |
||||
// ------------------------- |
||||
@linkColor: #2FA4E7; |
||||
@linkColorHover: darken(@linkColor, 15%); |
||||
|
||||
|
||||
// Typography |
||||
// ------------------------- |
||||
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif; |
||||
@serifFontFamily: Georgia, "Times New Roman", Times, serif; |
||||
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace; |
||||
|
||||
@baseFontSize: 14px; |
||||
@baseFontFamily: @sansFontFamily; |
||||
@baseLineHeight: 20px; |
||||
@altFontFamily: @monoFontFamily; |
||||
|
||||
@headingsFontFamily: 'Telex', sans-serif; // empty to use BS default, @baseFontFamily |
||||
@headingsFontWeight: bold; // instead of browser default, bold |
||||
@headingsColor: #317EAC; // empty to use BS default, @textColor |
||||
|
||||
// Component sizing |
||||
// ------------------------- |
||||
// Based on 14px font-size and 20px line-height |
||||
|
||||
@fontSizeLarge: @baseFontSize * 1.25; // ~18px |
||||
@fontSizeSmall: @baseFontSize * 0.85; // ~12px |
||||
@fontSizeMini: @baseFontSize * 0.75; // ~11px |
||||
|
||||
@paddingLarge: 11px 19px; // 44px |
||||
@paddingSmall: 2px 10px; // 26px |
||||
@paddingMini: 1px 6px; // 24px |
||||
|
||||
@baseBorderRadius: 4px; |
||||
@borderRadiusLarge: 5px; |
||||
@borderRadiusSmall: 3px; |
||||
|
||||
|
||||
// Tables |
||||
// ------------------------- |
||||
@tableBackground: transparent; // overall background-color |
||||
@tableBackgroundAccent: #f9f9f9; // for striping |
||||
@tableBackgroundHover: #f5f5f5; // for hover |
||||
@tableBorder: #ddd; // table and cell border |
||||
|
||||
|
||||
// Buttons |
||||
// ------------------------- |
||||
@btnBackground: @white; |
||||
@btnBackgroundHighlight: darken(@white, 10%); |
||||
@btnBorder: darken(@white, 20%); |
||||
|
||||
@btnPrimaryBackground: @linkColor; |
||||
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%); |
||||
|
||||
@btnInfoBackground: @purple; |
||||
@btnInfoBackgroundHighlight: #2f96b4; |
||||
|
||||
@btnSuccessBackground: @green; |
||||
@btnSuccessBackgroundHighlight: #51a351; |
||||
|
||||
@btnWarningBackground: @orange; |
||||
@btnWarningBackgroundHighlight: @orange; |
||||
|
||||
@btnDangerBackground: @red; |
||||
@btnDangerBackgroundHighlight: #bd362f; |
||||
|
||||
@btnInverseBackground: @yellow; |
||||
@btnInverseBackgroundHighlight: @grayDarker; |
||||
|
||||
|
||||
// Forms |
||||
// ------------------------- |
||||
@inputBackground: @white; |
||||
@inputBorder: #ccc; |
||||
@inputBorderRadius: 3px; |
||||
@inputDisabledBackground: @grayLighter; |
||||
@formActionsBackground: #f5f5f5; |
||||
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border |
||||
|
||||
// Dropdowns |
||||
// ------------------------- |
||||
@dropdownBackground: @white; |
||||
@dropdownBorder: rgba(0,0,0,.2); |
||||
@dropdownDividerTop: #e5e5e5; |
||||
@dropdownDividerBottom: @white; |
||||
|
||||
@dropdownLinkColor: @grayDark; |
||||
|
||||
@dropdownLinkColorHover: @white; |
||||
@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive; |
||||
|
||||
@dropdownLinkColorActive: @dropdownLinkColor; |
||||
@dropdownLinkBackgroundActive: @linkColor; |
||||
|
||||
|
||||
|
||||
// COMPONENT VARIABLES |
||||
// -------------------------------------------------- |
||||
|
||||
// Z-index master list |
||||
// ------------------------- |
||||
// Used for a bird's eye view of components dependent on the z-axis |
||||
// Try to avoid customizing these :) |
||||
@zindexDropdown: 1000; |
||||
@zindexPopover: 1010; |
||||
@zindexTooltip: 1020; |
||||
@zindexFixedNavbar: 1030; |
||||
@zindexModalBackdrop: 1040; |
||||
@zindexModal: 1050; |
||||
|
||||
|
||||
// Sprite icons path |
||||
// ------------------------- |
||||
@iconSpritePath: "../img/glyphicons-halflings.png"; |
||||
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png"; |
||||
|
||||
|
||||
// Input placeholder text color |
||||
// ------------------------- |
||||
@placeholderText: @grayLight; |
||||
|
||||
|
||||
// Hr border color |
||||
// ------------------------- |
||||
@hrBorder: @grayLighter; |
||||
|
||||
|
||||
// Wells |
||||
// ------------------------- |
||||
@wellBackground: #f5f5f5; |
||||
|
||||
|
||||
// Navbar |
||||
// ------------------------- |
||||
@navbarCollapseWidth: 767px; |
||||
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1; |
||||
|
||||
@navbarHeight: 50px; |
||||
@navbarBackground: #eee; |
||||
@navbarBackgroundHighlight: lighten(@navbarBackground, 5%); |
||||
@navbarBorder: rgba(0, 0, 0, 0.1); |
||||
|
||||
@navbarText: @textColor; |
||||
@navbarLinkColor: @textColor; |
||||
@navbarLinkColorHover: @textColor; |
||||
@navbarLinkColorActive: @textColor; |
||||
@navbarLinkBackgroundHover: rgba(0,0,0,.05); |
||||
@navbarLinkBackgroundActive: rgba(0,0,0,.05); |
||||
|
||||
@navbarBrandColor: @navbarLinkColor; |
||||
|
||||
// Inverted navbar |
||||
@navbarInverseBackground: @linkColor; |
||||
@navbarInverseBackgroundHighlight: lighten(@linkColor, 8%); |
||||
@navbarInverseBorder: darken(@navbarInverseBackground, 12%); |
||||
|
||||
@navbarInverseText: @grayLighter; |
||||
@navbarInverseLinkColor: @white; |
||||
@navbarInverseLinkColorHover: @white; |
||||
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover; |
||||
@navbarInverseLinkBackgroundHover: rgba(0,0,0,.2); |
||||
@navbarInverseLinkBackgroundActive: rgba(0,0,0,.2); |
||||
|
||||
@navbarInverseSearchBackground: darken(@navbarInverseBackground, 25%); |
||||
@navbarInverseSearchBackgroundFocus: @white; |
||||
@navbarInverseSearchBorder: @navbarInverseBackground; |
||||
@navbarInverseSearchPlaceholderColor: #ccc; |
||||
|
||||
@navbarInverseBrandColor: @navbarInverseLinkColor; |
||||
|
||||
|
||||
// Pagination |
||||
// ------------------------- |
||||
@paginationBackground: #fff; |
||||
@paginationBorder: #ddd; |
||||
@paginationActiveBackground: #f5f5f5; |
||||
|
||||
|
||||
// Hero unit |
||||
// ------------------------- |
||||
@heroUnitBackground: @grayLighter; |
||||
@heroUnitHeadingColor: inherit; |
||||
@heroUnitLeadColor: inherit; |
||||
|
||||
|
||||
// Form states and alerts |
||||
// ------------------------- |
||||
@warningText: darken(@linkColor, 20%); |
||||
@warningBackground: lighten(@linkColor, 20%); |
||||
@warningBorder: darken(spin(@warningBackground, -10), 3%); |
||||
|
||||
@errorText: darken(#C45559, 5%); |
||||
@errorBackground: #EDDBE3; |
||||
@errorBorder: darken(spin(@errorBackground, -10), 3%); |
||||
|
||||
@successText: darken(@green, 5%); |
||||
@successBackground: #CDB; |
||||
@successBorder: darken(spin(@successBackground, -10), 5%); |
||||
|
||||
@infoText: darken(#908A62, 5%); |
||||
@infoBackground: #A7DFF1; |
||||
@infoBorder: darken(spin(@infoBackground, -10), 7%); |
||||
|
||||
|
||||
// Tooltips and popovers |
||||
// ------------------------- |
||||
@tooltipColor: #fff; |
||||
@tooltipBackground: #000; |
||||
@tooltipArrowWidth: 5px; |
||||
@tooltipArrowColor: @tooltipBackground; |
||||
|
||||
@popoverBackground: #fff; |
||||
@popoverArrowWidth: 10px; |
||||
@popoverArrowColor: #fff; |
||||
@popoverTitleBackground: darken(@popoverBackground, 3%); |
||||
|
||||
// Special enhancement for popovers |
||||
@popoverArrowOuterWidth: @popoverArrowWidth + 1; |
||||
@popoverArrowOuterColor: rgba(0,0,0,.25); |
||||
|
||||
|
||||
|
||||
// GRID |
||||
// -------------------------------------------------- |
||||
|
||||
|
||||
// Default 940px grid |
||||
// ------------------------- |
||||
@gridColumns: 12; |
||||
@gridColumnWidth: 60px; |
||||
@gridGutterWidth: 20px; |
||||
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); |
||||
|
||||
// 1200px min |
||||
@gridColumnWidth1200: 70px; |
||||
@gridGutterWidth1200: 30px; |
||||
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1)); |
||||
|
||||
// 768px-979px |
||||
@gridColumnWidth768: 42px; |
||||
@gridGutterWidth768: 20px; |
||||
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1)); |
||||
|
||||
|
||||
// Fluid grid |
||||
// ------------------------- |
||||
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth); |
||||
@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth); |
||||
|
||||
// 1200px min |
||||
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200); |
||||
@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200); |
||||
|
||||
// 768px-979px |
||||
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768); |
||||
@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768); |
@ -0,0 +1,12 @@
|
||||
<plugin> |
||||
<nom>Cerulean</nom> |
||||
<version>2.1.1</version> |
||||
<etat>stable</etat> |
||||
<auteur>Cedric</auteur> |
||||
<licence>GPL</licence> |
||||
<prefix>theme_bscerulean</prefix> |
||||
<description>A calm, blue sky</description> |
||||
<icon>vignette.png</icon> |
||||
<utilise id="ZBoot" version="[0.1.0-dev;]" /> |
||||
<categorie>theme</categorie> |
||||
</plugin> |
After Width: | Height: | Size: 5.8 KiB |
Loading…
Reference in new issue