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
e05ba75781
  1. 5
      .gitattributes
  2. 724
      css/bootswatch.less
  3. 303
      css/variables.less
  4. 12
      plugin.xml
  5. BIN
      vignette.png

5
.gitattributes

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

724
css/bootswatch.less

@ -0,0 +1,724 @@
// Bootswatch.less
// Swatch: Amelia
// Version: 2.1.1
// -----------------------------------------------------
// TYPOGRAPHY
// -----------------------------------------------------
@import url('https://fonts.googleapis.com/css?family=Lobster');
@import url('https://fonts.googleapis.com/css?family=Cabin:400,700');
h6 {
color: @textColor;
}
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
font-family: @baseFontFamily;
color: @textColor;
}
code, pre {
background-color: rgba(255, 255, 255, 0.3);
padding: 2px;
}
blockquote {
border-left-color: lighten(#147E88, 12%);
&.pull-right {
border-right-color: lighten(#147E88, 12%);
}
small {
color: rgba(255, 255, 255, 0.6);
}
}
.muted {
color: rgba(255, 255, 255, 0.5);
}
// SCAFFOLDING
// -----------------------------------------------------
body {
#gradient > .radial(lighten(#0F8790, 7%), #0F8790);
}
hr {
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.page-header {
margin: 30px 0 15px;
border-bottom: 0px solid transparent;
}
// NAVBAR
// -----------------------------------------------------
.navbar {
.navbar-inner {
.border-radius(0);
}
.brand {
padding: 15px 20px 14px;
font-family: @headingsFontFamily;
font-size: 24px;
font-weight: normal;
}
.nav > li > a {
padding-top: 17px;
padding-bottom: 14px;
text-shadow: none;
}
.nav > .active > a,
.nav > .active > a:hover,
.navbar .nav > .active > a:focus {
.box-shadow(none);
}
.navbar-search {
margin-top: 10px;
}
.navbar-search .search-query {
.border-radius(0);
padding-top: 5px;
padding-bottom: 5px;
}
.navbar-text {
margin: 17px 15px 14px;
line-height: 20px;
}
.btn,
.btn-group {
padding: 4px;
}
&-inverse {
.dropdown-menu li > a:hover,
.dropdown-menu li > a:focus,
.dropdown-submenu:hover > a {
background-image: none;
background-color: @yellow;
}
}
}
@media (max-width: @navbarCollapseWidth) {
.navbar .nav-collapse {
.nav li > a {
color: @textColor;
.border-radius(0);
&:hover {
background-color: lighten(@navbarBackground, 10%);
}
}
.dropdown-menu li > a:hover,
.dropdown-menu li > a:focus,
.dropdown-submenu:hover > a {
background-image: none;
}
.navbar-form,
.navbar-search {
.box-shadow(none);
border: none;
}
.navbar-search .search-query {
border: 2px solid @textColor;
}
.nav-header {
color: rgba(255, 255, 255, 0.5);
}
}
.navbar-inverse .nav-collapse {
.nav li > a:hover,
.dropdown-menu a:hover {
background-color: lighten(@navbarInverseBackground, 10%) !important;
}
}
}
div.subnav {
background-color: rgba(42, 99, 105, 0.9);
background-image: none;
border: 0px solid transparent;
.border-radius(0);
.box-shadow(none);
.nav > li.open > a {
border-color: transparent;
background-color: rgba(255, 255, 255, 0.4);
}
.nav > li > a {
color: @textColor;
border-color: transparent;
}
.nav > li:first-child > a,
.nav > li:first-child > a:hover {
.border-radius(0);
}
.nav > .active > a {
background-color: transparent;
border-color: transparent;
color: @textColor;
.box-shadow(none);
}
.nav > .active > a:hover,
.nav > li > a:hover,
.nav > li.active > a:hover, {
border-right-color: transparent;
background-color: rgba(255, 255, 255, 0.4);
color: @textColor;
}
.nav > li:first-child > a:hover {
border-left-color: rgba(255, 255, 255, 0.4);
border-left-width: 1px;
}
&-fixed {
top: 50px;
}
}
// NAV
// -----------------------------------------------------
.nav-tabs li.open > .dropdown-toggle,
.nav-pills li.open > .dropdown-toggle {
background-color: #8AD5DC;
color: @linkColor;
border-color: transparent;
}
.nav-tabs, .nav-pills {
border-color: transparent;
li > a {
border-color: transparent;
.border-radius(0);
.box-shadow(0);
}
li.active > a,
li:active > a,
li.active > a:hover,
li:active > a:hover {
color: @textColor;
}
li.active > a,
li:active > a,
li > a:hover,
li.active > a:hover,
li:active > a:hover {
background-color: #8AD5DC;
border-color: transparent;
text-shadow: none;
}
}
.nav-tabs, .nav-tabs > li > a {
border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}
.nav-tabs > li > a {
background-color: #3CB9C6;
}
.nav-tabs.nav-stacked {
li > a:first-child,
li > a:last-child {
.border-radius(0);
}
li > a,
li > a:hover,
li.active > a,
li:active > a,
li.active > a:hover,
li:active > a:hover {
border-color: transparent;
}
}
.nav-list {
.nav-header {
text-shadow: none;
color: @textColor;
}
li > a {
text-shadow: none;
}
li.active > a,
li:active > a,
li > a:hover,
li.active > a:hover,
li:active > a:hover {
background-color: #8AD5DC;
text-shadow: none;
}
.divider {
background-color: rgba(255, 255, 255, 0.3);
border-bottom: none;
}
}
.breadcrumb, .pager > li > a {
border-color: transparent;
.border-radius(0);
.box-shadow(none);
text-shadow: none;
}
.breadcrumb {
background-color: #3CB9C6;
background-image: none;
li {
text-shadow: none;
}
.active {
color: @white;
}
.divider {
color: @linkColor;
}
}
.pagination {
ul {
background-color: @paginationBackground;
background-image: none;
}
.disabled a, .disabled a:hover {
color: @textColor;
}
li a:hover {
background-color: rgba(255, 255, 255, 0.4);
color: @linkColor;
}
.active a, .active a:hover {
background-color: rgba(255, 255, 255, 0.4);
color: @textColor;
}
ul,
li:first-child a,
li:last-child a {
.border-radius(0);
}
}
.pager {
li > a {
background-color: #3CB9C6;
&:hover {
background-color: #8AD5DC;
}
}
.disabled a,
.disabled a:hover {
background-color: #3CB9C6;
color: @white;
}
}
// BUTTONS
// -----------------------------------------------------
.buttonBackgroundCustom(@color) {
background-color: @color;
border-color: transparent;
&:hover, &:active, &.active, &.disabled, &[disabled] {
background-color: darken(@color, 5%);
text-shadow: none;
}
&:active, &.active {
background-color: darken(@color, 15%);
.box-shadow(none);
}
// IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
&:active,
&.active {
background-color: darken(@color, 15%) e("\9");
}
}
.btn {
padding: 12px 16px;
.border-radius(0);
background-image: none;
text-shadow: none;
.box-shadow(none);
.buttonBackgroundCustom(@btnBackground)
}
.btn-group .btn:first-child {
margin-left: 0;
.border-radius(0);
}
.btn-group .btn:last-child,
.btn-group .dropdown-toggle {
.border-radius(0);
}
.btn-group .dropdown-toggle,
.btn-group.open .dropdown-toggle,
.btn.open .dropdown-toggle {
.box-shadow(none);
}
.btn-primary {
.buttonBackgroundCustom(@btnPrimaryBackground);
}
.btn-info {
.buttonBackgroundCustom(@btnInfoBackground);
}
.btn-success {
.buttonBackgroundCustom(@btnSuccessBackground);
}
.btn-warning {
.buttonBackgroundCustom(@btnWarningBackground);
}
.btn-danger {
.buttonBackgroundCustom(@btnDangerBackground);
}
.btn-inverse {
.buttonBackgroundCustom(@btnInverseBackground);
}
.btn-link {
.buttonBackgroundCustom(@btnPrimaryBackground);
}
.btn-small {
padding: 13px 16px 12px;
}
[class^="icon-"], [class*=" icon-"] {
margin-top: 2px;
margin-right: 8px;
}
.btn-small [class^="icon-"] {
margin-top: 1px;
}
.add-on [class^="icon-"] {
margin-left: 5px;
}
// TABLES
// -----------------------------------------------------
.table th, .table td,
.table tbody + tbody {
border-top: 0px solid transparent;
}
.table-bordered {
.border-radius(0);
}
.table tbody {
tr.success td {
background-color: @green;
}
tr.error td {
background-color: @red;
}
tr.info td {
background-color: @blue;
}
}
// FORMS
// -----------------------------------------------------
legend {
font-family: @headingsFontFamily;
}
legend, label, .help-block, .input-file {
color: @textColor;
border: 0px solid transparent;
}
input, textarea, .uneditable-input {
border: 0px solid transparent;
padding: 10px;
}
.uneditable-input {
padding-bottom: 30px;
}
select {
border: 0px solid transparent;
}
button {
margin-left: 12px;
}
input, textarea, .search-query, .uneditable-input,
.input-append input, .input-append .uneditable-input,
.input-prepend input, .input-prepend .uneditable-input {
border-color: transparent;
.box-shadow(none);
}
.form-actions {
border-top: 0px solid transparent;
}
.control-group.warning > label,
.control-group.warning .help-inline {
color: lighten(@orange, 30%);
}
.control-group.error > label,
.control-group.error .help-inline {
color: lighten(@linkColor, 10%);
}
.control-group.success > label,
.control-group.success .help-inline {
color: lighten(@green, 20%);
}
.input-prepend .add-on,
.input-append .add-on {
height: 20px;
padding-top: 4px;
background-color: @grayLighter;
border-color: transparent;
.border-radius(0);
color: @gray;
text-shadow: none;
}
.input-append .btn,
.input-prepend .btn {
padding: 4px 10px;
}
// ALERTS, LABELS, BADGES
// -----------------------------------------------------
.alert, .label {
border-color: transparent;
.border-radius(0);
.box-shadow(none);
text-shadow: none;
}
.alert-heading {
color: @textColor;
}
.label, .label:hover {
background-color: @grayLighter;
text-shadow: none;
color: @grayDark;
}
.label-warning, .label-warning:hover, .alert {
background-color: @orange;
color: @textColor;
}
.label-important, .label-important:hover, .alert-error {
background-color: darken(@yellow, 3%);
color: @textColor;
}
.label-success, .label-success:hover, .alert-success {
background-color: @green;
color: @textColor;
}
.label-info, .label-info:hover, .alert-info {
background-color: @purple;
color: @textColor;
}
// MISCELLANEOUS
// -----------------------------------------------------
.progress, .well, pre, code {
border-color: transparent;
.border-radius(0);
.box-shadow(none);
text-shadow: none;
}
.well {
background-image: none;
}
.hero-unit {
.border-radius(0);
}
.thumbnail {
border: 0 solid transparent;
.border-radius(0);
.box-shadow(none);
}
.progress {
background-image: none;
background-color: #27666D;
.bar {
.box-shadow(none);
background-image: none;
background-color: @yellow;
&-success {
background-color: @green;
}
&-warning {
background-color: @orange;
}
&-error {
background-color: @red;
}
}
}
.progress-danger .bar {
background-image: none;
background-color: #AD1D28;
}
.progress-danger.progress-striped .bar {
#gradient > .striped(#AD1D28);
}
.progress-success .bar {
background-image: none;
background-color: @green;
}
.progress-success.progress-striped .bar {
#gradient > .striped(@green);
}
.progress-info .bar {
background-image: none;
background-color: @blue;
}
.progress-info.progress-striped .bar {
#gradient > .striped(@blue);
}
.modal {
.border-radius(0);
&-header {
background-color: @navbarBackground;
color: @white;
}
&-body {
color: @grayDark;
h1, h2, h3, h4, h5, h6,
legend {
color: @red;
}
label,
.input-file {
color: @grayDark;
}
.help-block,
.help-inline {
color: @grayLight;
}
textarea,
input,
.uneditable-input {
border: 1px solid @grayLight;
}
}
}
.popover {
padding: 0;
.border-radius(0);
color: @grayDark;
.popover-title {
.border-radius(0);
color: @white;
}
}
// MEDIA QUERIES
// -----------------------------------------------------

303
css/variables.less

@ -0,0 +1,303 @@
//
// Variables
// Swatch: Amelia
// Version: 2.1.1
// --------------------------------------------------
// Global values
// --------------------------------------------------
// Grays
// -------------------------
@black: #000;
@grayDarker: #111;
@grayDark: #444;
@gray: #555;
@grayLight: #aaa;
@grayLighter: #ddd;
@white: #fff;
// Accent colors
// -------------------------
@blue: #00BCE1;
@blueDark: #1269B0;
@green: #48CA3B;
@red: #AD1D28;
@yellow: #DEBB27;
@orange: #DF6E1E;
@pink: #FFBCB9;
@purple: #4D3A7D;
// Scaffolding
// -------------------------
@bodyBackground: #003F4D;
@textColor: rgba(255, 255, 255, 0.9);
// Links
// -------------------------
@linkColor: lighten(@yellow, 15%);
@linkColorHover: @linkColor;
// Typography
// -------------------------
@sansFontFamily: 'Cabin', Verdana, sans-serif;
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
@baseFontSize: 14px;
@baseFontFamily: @sansFontFamily;
@baseLineHeight: 20px;
@altFontFamily: @serifFontFamily;
@headingsFontFamily: 'Lobster', cursive; // empty to use BS default, @baseFontFamily
@headingsFontWeight: normal; // instead of browser default, bold
@headingsColor: inherit; // 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: lighten(#147E88, 10%); // overall background-color
@tableBackgroundAccent: lighten(#147E88, 15%); // for striping
@tableBackgroundHover: rgba(255, 255, 255, 0.4); // for hover
@tableBorder: lighten(#147E88, 12%); // table and cell border
// Buttons
// -------------------------
@btnBackground: @grayLighter;
@btnBackgroundHighlight: @grayLighter;
@btnBorder: rgba(0, 0, 0, 0);
@btnPrimaryBackground: @navbarBackground;
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
@btnInfoBackground: @purple;
@btnInfoBackgroundHighlight: @purple;
@btnSuccessBackground: @green;
@btnSuccessBackgroundHighlight: @green;
@btnWarningBackground: @orange;
@btnWarningBackgroundHighlight: @orange;
@btnDangerBackground: @yellow;
@btnDangerBackgroundHighlight: @yellow;
@btnInverseBackground: #27666D;
@btnInverseBackgroundHighlight: #27666D;
// Forms
// -------------------------
@inputBackground: @white;
@inputBorder: transparent;
@inputBorderRadius: 0;
@inputDisabledBackground: @grayLighter;
@formActionsBackground: transparent;
@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;
@dropdownLinkColorActive: @dropdownLinkColor;
@dropdownLinkBackgroundActive: @red;
@dropdownLinkBackgroundHover: @red;
// 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: transparent;
// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset: 180px;
// Wells
// -------------------------
@wellBackground: #3CB9C6;
// Navbar
// -------------------------
@navbarCollapseWidth: 979px;
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
@navbarHeight: 50px;
@navbarBackgroundHighlight: @red;
@navbarBackground: @red;
@navbarBorder: darken(@navbarBackground, 12%);
@navbarText: @white;
@navbarLinkColor: @white;
@navbarLinkColorHover: @white;
@navbarLinkColorActive: @navbarLinkColorHover;
@navbarLinkBackgroundHover: lighten(@navbarBackground, 10%);
@navbarLinkBackgroundActive: lighten(@navbarBackground, 10%);
@navbarBrandColor: @navbarLinkColor;
// Inverted navbar
@navbarInverseBackground: @yellow;
@navbarInverseBackgroundHighlight: @yellow;
@navbarInverseBorder: rgba(0, 0, 0, 0.1);
@navbarInverseText: @white;
@navbarInverseLinkColor: @white;
@navbarInverseLinkColorHover: @white;
@navbarInverseLinkColorActive: @white;
@navbarInverseLinkBackgroundHover: rgba(255, 255, 255, 0.2);
@navbarInverseLinkBackgroundActive: rgba(255, 255, 255, 0.2);
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
@navbarInverseSearchBackgroundFocus: @white;
@navbarInverseSearchBorder: @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor: @white;
@navbarInverseBrandColor: @navbarInverseLinkColor;
// Pagination
// -------------------------
@paginationBackground: #3CB9C6;
@paginationBorder: transparent;
@paginationActiveBackground: rgba(255, 255, 255, 0.4);
// Hero unit
// -------------------------
@heroUnitBackground: #3CB9C6;
@heroUnitHeadingColor: inherit;
@heroUnitLeadColor: inherit;
// Form states and alerts
// -------------------------
@warningText: #c09853;
@warningBackground: #fcf8e3;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@errorText: #b94a48;
@errorBackground: #f2dede;
@errorBorder: darken(spin(@errorBackground, -10), 3%);
@successText: #468847;
@successBackground: #dff0d8;
@successBorder: darken(spin(@successBackground, -10), 5%);
@infoText: #3a87ad;
@infoBackground: #d9edf7;
@infoBorder: darken(spin(@infoBackground, -10), 7%);
// Tooltips and popovers
// -------------------------
@tooltipColor: #fff;
@tooltipBackground: #000;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: @tooltipBackground;
@popoverBackground: #fff;
@popoverArrowWidth: 10px;
@popoverArrowColor: #fff;
@popoverTitleBackground: @navbarBackground;
// 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>Amelia</nom>
<version>2.1.1</version>
<etat>test</etat>
<auteur>Cedric</auteur>
<licence>GPL</licence>
<prefix>theme_bsamelia</prefix>
<description>Sweet and cheery</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: 10 KiB

Loading…
Cancel
Save