Browse Source

Rangement :

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
cedric@yterium.com 9 years ago
commit
56df47e776
  1. 10
      .gitattributes
  2. 32
      body.html
  3. 182
      css/bootswatch.less
  4. 5
      css/layouts.less
  5. 19
      css/navbar.less
  6. 32
      css/responsive.less
  7. 24
      css/theme.less
  8. 297
      css/variables.less
  9. 12
      plugin.xml
  10. BIN
      vignette.png

10
.gitattributes

@ -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

32
body.html

@ -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>

182
css/bootswatch.less

@ -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
// -----------------------------------------------------

5
css/layouts.less

@ -0,0 +1,5 @@
@import "bootstrap/css/layouts.less";
#content{float:right;}
#aside{float:left;}
#extra{float:left;clear:left;}

19
css/navbar.less

@ -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);
}

32
css/responsive.less

@ -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%;}
}

24
css/theme.less

@ -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}

297
css/variables.less

@ -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);

12
plugin.xml

@ -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>

BIN
vignette.png

After

Width: 200  |  Height: 150  |  Size: 5.8 KiB

Loading…
Cancel
Save