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 10 years ago
commit
e28e80cd84
  1. 5
      .gitattributes
  2. 602
      css/bootswatch.less
  3. 303
      css/variables.less
  4. 12
      plugin.xml
  5. BIN
      vignette.png

5
.gitattributes vendored

@ -0,0 +1,5 @@
* text=auto !eol
css/bootswatch.less -text
css/variables.less -text
/plugin.xml -text
/vignette.png -text

602
css/bootswatch.less

@ -0,0 +1,602 @@
// Bootswatch.less
// Swatch: Spruce
// Version: 2.1.1
// -----------------------------------------------------
// TYPOGRAPHY
// --------------------------------------------------
@import url('https://fonts.googleapis.com/css?family=Josefin+Slab:400,700');
h1 {
font-size: 54px;
line-height: 1.2em;
color: @yellow;
}
h2 { font-size: 48px; }
h3 { font-size: 36px; }
h4 { font-size: 24px; }
h5 { font-size: 20px; }
h1 > small,
h2 > small,
h3 > small,
h4 > small,
h5 > small,
h6 > small,
.muted {
color: @headingsColor;
font-family: @baseFontFamily;
}
code, pre {
color: lighten(@blueDark, 10%);
background-color: @headingsColor;
}
// SCAFFOLDING
// --------------------------------------------------
// body {
// #gradient > .vertical-three-colors (#90A38F, #AEAD8E, 60%, #90A38F);
// background-size: 100% 1400px;
// background-repeat: repeat-y;
// }
.page-header {
border-bottom: 2px solid @headingsColor;
padding-bottom: 5px;
h1 {
margin-bottom: 0;
}
}
hr {
border-top: none;
border-bottom: 2px solid @headingsColor;
}
blockquote {
border-left: 2px solid @headingsColor;
&.pull-right {
border-right: 2px solid @headingsColor;
}
small {
color: @blueDark;
}
}
// NAVBAR
// --------------------------------------------------
.navbar {
.navbar-inner {
background-image: none;
.box-shadow(none);
}
.brand {
padding: 18px 20px 12px;
font-size: 26px;
font-family: @headingsFontFamily;
font-weight: @headingsFontWeight;
}
.nav > li > a {
padding: 20px 20px 10px;
font-size: 20px;
font-family: @headingsFontFamily;
font-weight: @headingsFontWeight;
}
.nav .active > a,
.nav .active > a:hover {
color: @yellow;
}
.nav > .active > a,
.nav > .active > a:hover,
.nav > .active > a:focus {
.box-shadow(none);
}
.navbar-text {
margin: 19px 20px 0;
font-size: 20px;
font-family: @headingsFontFamily;
font-weight: @headingsFontWeight;
line-height: inherit;
}
.divider-vertical {
border-color: rgba(0, 0, 0, 0.2);
}
.navbar-search {
margin-top: 12px;
}
.navbar-search .search-query {
border-color: transparent;
background-color: rgba(255, 255, 255, 0.4);
color: @white;
}
.btn-navbar {
margin-top: 14px;
}
.navbar-form, .navbar-search {
border-color: transparent;
.box-shadow(none);
}
}
@media (max-width: @navbarCollapseWidth) {
.navbar .nav-collapse {
.nav li > a {
color: @headingsColor;
&:hover {
color: @yellow;
background-color: @blue;
}
}
}
.navbar-inverse .nav-collapse {
.nav li > a:hover {
background-color: rgba(0, 0, 0, 0.06) !important;
}
}
}
div.subnav {
background-color: @green;
background-image: none;
border-color: transparent;
.box-shadow(0 1px 5px rgba(0,0,0,.1));
font-size: 18px;
.nav > li > a {
padding: 13px 12px 9px;
border-color: transparent;
background-color: transparent;
font-family: @headingsFontFamily;
font-weight: @headingsFontWeight;
color: @headingsColor;
}
.nav > li + li > a {
border-color: transparent;
}
.nav > li.active > a,
.nav > li > a:hover,
.nav > li.active > a:hover,
.dropdown.open .dropdown-toggle,
.dropdown.open.active .dropdown-toggle:hover {
.box-shadow(none);
background-color: transparent;
border-color: transparent;
color: @yellow;
}
.dropdown.open > .dropdown-menu {
background-color: @headingsColor;
color: @textColor;
border-color: transparent;
}
.dropdown.open > .dropdown-menu a:hover {
background-color: darken(#90A38F, 10%);
color: @headingsColor;
}
&.subnav-fixed {
top: @navbarHeight;
}
}
// NAV
// --------------------------------------------------
.nav {
.disabled > a {
color: #ccc;
&:hover {
background-color: #748C73;
}
}
}
.nav-list {
li > a,
.nav-header {
text-shadow: none;
}
li > a:hover {
background-color: transparent;
}
li.active > a,
li.active > a:hover {
background-color: #A2CDB5;
text-shadow: none;
}
.divider {
background-color: transparent;
border-bottom: 1px solid @headingsColor;
}
}
.nav-tabs {
border-color: transparent;
}
.nav-tabs > li > a,
.nav-pills > li > a {
background-color: #748C73;
&:hover {
background-color: #748C73;
border-color: transparent;
}
}
.nav-tabs > .active > a,
.nav-tabs > .active > a:hover,
.nav-pills .active > a,
.nav-pills .active > a:hover {
background-color: #A2CDB5;
border-color: transparent;
color: @blue;
}
.nav-tabs.nav-stacked > li > a {
border-color: transparent;
&:hover {
border-color: transparent;
}
}
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle {
background-color: #748C73;
border-color: transparent;
color: @yellow;
}
.nav-tabs .active.open .dropdown-toggle,
.nav-pills .active.open .dropdown-toggle {
background-color: #A2CDB5;
}
.nav-tabs .dropdown-menu,
.nav-pills .dropdown-menu {
background-color: @headingsColor;
color: @textColor;
border-color: transparent;
a:hover {
background-color: #A2CDB5;
color: @headingsColor;
}
}
.nav .nav-header {
color: @blue;
}
.tabbable {
.nav-tabs,
.nav-tabs > li > a,
.nav-tabs > li > a:hover,
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover {
border-color: transparent;
}
}
.breadcrumb {
background-color: darken(#90A38F, 10%);
background-image: none;
border-color: transparent;
.box-shadow(none);
li {
color: @yellow;
text-shadow: none;
a {
color: @yellow;
}
a:hover {
color: @yellow;
}
.divider {
color: @headingsColor;
}
}
.active {
color: @headingsColor;
}
}
.pagination {
ul {
background-color: darken(#90A38F, 10%);
background-image: none;
border-color: transparent;
.box-shadow(none);
}
ul > li > a {
color: @yellow;
border-color: transparent;
&:hover {
color: @yellow;
background-color: rgba(0, 0, 0, 0.1);
}
}
ul > .active > a {
color: @headingsColor;
background-color: rgba(0, 0, 0, 0.1);
}
ul > .disabled > a,
ul > .disabled > a:hover {
color: @blue;
}
}
.pager {
a {
border: none;
background-color: #748C73;
&:hover {
background-color: #687D67;
}
}
.disabled a,
.disabled a:hover {
background-color: #748C73;
color: @textColor;
}
}
// BUTTONS
// --------------------------------------------------
.btn {
font-family: @headingsFontFamily;
font-weight: @headingsFontWeight;
text-shadow: none;
border-color: transparent;
.box-shadow(none);
}
.btn-large {
font-size: 18px;
}
.btn-group .dropdown-toggle {
.box-shadow(none);
}
// TABLES
// --------------------------------------------------
.table,
.table.table-bordered,
.table.table-striped {
.border-radius(0 0 8px 8px);
}
.table-bordered thead:first-child tr:first-child th:first-child,
.table-bordered tbody:first-child tr:first-child td:first-child,
.table-bordered thead:first-child tr:first-child th:last-child,
.table-bordered tbody:first-child tr:first-child td:last-child {
.border-radius(0);
}
.table-striped tbody:last-child tr:last-child td:first-child {
.border-radius(0 0 0 8px);
}
.table-striped tbody:last-child tr:last-child td:last-child {
.border-radius(0 0 8px 0);
}
.table-bordered {
border: none;
}
.table thead tr th:first-child,
.table tbody tr td:first-child {
border-left: none;
}
.table th,
.table-striped tbody tr:nth-child(odd) th {
background-color: darken(#90A38F, 10%);
color: @headingsColor;
}
// FORMS
// --------------------------------------------------
legend {
font-family: @headingsFontFamily;
font-weight: @headingsFontWeight;
color: @headingsColor;
}
label, .help-block, input[type="file"] {
color: @headingsColor;
}
input, textarea, select {
color: @textColor;
}
.uneditable-input {
color: @gray;
}
legend {
border-bottom: 2px solid @white;
}
.form-actions {
border-top: none;
.border-radius(4px);
}
.control-group.error {
label, .help-block, .help-inline {
color: lighten(@red, 30%);
}
input, select, textarea {
border: 2px solid lighten(@red, 30%);
color: @textColor;
}
}
.control-group.success {
label, .help-block, .help-inline {
color: lighten(#24C00B, 25%);
}
input, select, textarea {
border: 2px solid lighten(#24C00B, 25%);
color: @textColor;
}
}
.control-group.warning {
label, .help-block, .help-inline {
color: lighten(@orange, 25%);
}
input, select, textarea {
border: 2px solid lighten(@orange, 25%);
color: @textColor;
}
}
// ALERTS, LABELS, BADGES
// --------------------------------------------------
.alert {
text-shadow: none;
border: none;
}
.alert-heading {
font-family: @baseFontFamily;
color: inherit;
}
.badge,
.label {
background-color: @blue;
text-shadow: none;
&-success {
background-color: @successBackground;
}
&-warning {
background-color: @warningBackground;
}
&-important {
background-color: @errorBackground;
}
&-info {
background-color: @infoBackground;
}
&-inverse {
background-color: @yellow;
}
}
// MISC
// --------------------------------------------------
.well {
border: none;
.box-shadow(none);
}
.thumbnail {
border: none;
.box-shadow(none);
img {
.border-radius(4px);
}
}
.progress {
background-color: darken(#90A38F, 10%);
background-image: none;
}
.modal {
&-header {
padding: 12px 15px 6px;
background-color: @green;
}
&-body,
&-footer {
background-color: @headingsColor;
border: none;
.box-shadow(none);
label {
color: @textColor;
}
}
&-footer {
.border-radius(0 0 4px 4px);
}
}
// MEDIA QUERIES
// --------------------------------------------------

303
css/variables.less

@ -0,0 +1,303 @@
//
// Variables
// Swatch: Spruce
// Version: 2.1.1
// --------------------------------------------------
// Global values
// --------------------------------------------------
// Grays
// -------------------------
@black: #000;
@grayDarker: #222;
@grayDark: #333;
@gray: #555;
@grayLight: #999;
@grayLighter: #eee;
@white: #fff;
// Accent colors
// -------------------------
@blue: #01584C;
@blueDark: #013435;
@green: #015B4E;
@red: #D14432;
@yellow: #EBD90B;
@orange: #EE7026;
@pink: #A15B66;
@purple: #7073CF;
// Scaffolding
// -------------------------
@bodyBackground: #90A38F;
@textColor: @blueDark;
// Links
// -------------------------
@linkColor: @yellow;
@linkColorHover: @yellow;
// 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: 21px;
@altFontFamily: @serifFontFamily;
@headingsFontFamily: 'Josefin Slab', serif; // empty to use BS default, @baseFontFamily
@headingsFontWeight: 700; // instead of browser default, bold
@headingsColor: #F5F3DC; // 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: #C3C7AE; // overall background-color
@tableBackgroundAccent: darken(#C3C7AE, 5%); // for striping
@tableBackgroundHover: darken(#C3C7AE, 10%); // for hover
@tableBorder: @headingsColor; // table and cell border
// Buttons
// -------------------------
@btnBackground: @white;
@btnBackgroundHighlight: darken(@white, 10%);
@btnBorder: darken(@white, 20%);
@btnPrimaryBackground: lighten(@blueDark, 10%);
@btnPrimaryBackgroundHighlight: lighten(@blueDark, 5%);
@btnInfoBackground: #5bc0de;
@btnInfoBackgroundHighlight: #2f96b4;
@btnSuccessBackground: lighten(@blue, 10%);
@btnSuccessBackgroundHighlight: lighten(@blue, 5%);
@btnWarningBackground: lighten(@orange, 15%);
@btnWarningBackgroundHighlight: @orange;
@btnDangerBackground: lighten(@red, 5%);
@btnDangerBackgroundHighlight: @red;
@btnInverseBackground: @yellow;
@btnInverseBackgroundHighlight: darken(@yellow, 5%);
// Forms
// -------------------------
@inputBackground: @white;
@inputBorder: #ccc;
@inputBorderRadius: 3px;
@inputDisabledBackground: @grayLighter;
@formActionsBackground: transparent;
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
// Dropdowns
// -------------------------
@dropdownBackground: @headingsColor;
@dropdownBorder: rgba(0,0,0,.2);
@dropdownDividerTop: transparent;
@dropdownDividerBottom: @bodyBackground;
@dropdownLinkColor: @grayDark;
@dropdownLinkColorHover: @white;
@dropdownLinkColorActive: @dropdownLinkColorHover;
@dropdownLinkBackgroundActive: @dropdownLinkBackgroundHover;
@dropdownLinkBackgroundHover: darken(@bodyBackground, 10%);
// 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: 1030;
@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: #ccc;
// Hr border color
// -------------------------
@hrBorder: @linkColor;
// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset: 180px;
// Wells
// -------------------------
@wellBackground: darken(@bodyBackground, 10%);
// Navbar
// -------------------------
@navbarCollapseWidth: 979px;
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
@navbarHeight: 50px;
@navbarBackgroundHighlight: @navbarBackground;
@navbarBackground: @blueDark;
@navbarBorder: darken(@navbarBackground, 5%);
@navbarText: @grayLight;
@navbarLinkColor: @headingsColor;
@navbarLinkColorHover: @yellow;
@navbarLinkColorActive: @navbarLinkColorHover;
@navbarLinkBackgroundHover: transparent;
@navbarLinkBackgroundActive: @navbarBackground;
@navbarBrandColor: @headingsColor;
// Inverted navbar
@navbarInverseBackground: @wellBackground;
@navbarInverseBackgroundHighlight: lighten(@wellBackground, 5%);
@navbarInverseBorder: darken(@navbarInverseBackground, 5%);
@navbarInverseText: @grayLight;
@navbarInverseLinkColor: @headingsColor;
@navbarInverseLinkColorHover: @yellow;
@navbarInverseLinkColorActive: @yellow;
@navbarInverseLinkBackgroundHover: transparent;
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
@navbarInverseSearchBackgroundFocus: @white;
@navbarInverseSearchBorder: @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor: @white;
@navbarInverseBrandColor: @navbarInverseLinkColor;
// Pagination
// -------------------------
@paginationBackground: darken(@bodyBackground, 10%);
@paginationBorder: transparent;
@paginationActiveBackground: #A2CDB5;
// Hero unit
// -------------------------
@heroUnitBackground: darken(@bodyBackground, 10%);
@heroUnitHeadingColor: @headingsColor;
@heroUnitLeadColor: inherit;
// Form states and alerts
// -------------------------
@warningText: @white;
@warningBackground: @orange;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@errorText: @white;
@errorBackground: @red;
@errorBorder: darken(spin(@errorBackground, -10), 3%);
@successText: @white;
@successBackground: #24C00B;
@successBorder: darken(spin(@successBackground, -10), 5%);
@infoText: @white;
@infoBackground: #185AF9;
@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>Spruce</nom>
<version>2.1.1</version>
<etat>test</etat>
<auteur>Cedric</auteur>
<licence>GPL</licence>
<prefix>theme_bsspruce</prefix>
<description>Camping in the woods</description>
<icon>vignette.png</icon>
<utilise id="ZBoot" version="[0.1.0-dev;]" />
<categorie>theme</categorie>
</plugin>

BIN
vignette.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Loading…
Cancel
Save