arindam89
6/20/2014 - 3:15 AM

If you want to make a custom theme for ionic, and are using scss, this is a base to get you started

If you want to make a custom theme for ionic, and are using scss, this is a base to get you started

//Custom Theme test
// Colors
// -------------------------------
$custom: #057b6c !default;



// Buttons
// -------------------------------
$button-custom-bg: $custom !default;
$button-custom-text: #fff !default;
$button-custom-border: $custom !default;
$button-custom-active-bg: #fafafa !default;
$button-custom-active-border: #ccc !default;



// Bars
// -------------------------------
$bar-custom-bg: rgba($button-custom-bg, $bar-transparency) !default;
$bar-custom-text: $button-custom-text !default;
$bar-custom-border: $button-custom-border !default;
$bar-custom-active-bg: $button-custom-active-bg !default;
$bar-custom-active-border: $button-custom-active-border !default;




// Tabs
// -------------------------------
$tabs-custom-bg: $button-custom-bg !default;
$tabs-custom-border: $button-custom-border !default;
$tabs-custom-text: $button-custom-text !default;
$tabs-striped-off-color: #000;
$tabs-striped-off-opacity: .4;
$tabs-striped-border-width: 4px;




// Items
// -------------------------------
$item-custom-bg: $button-custom-bg !default;
$item-custom-border: $button-custom-border !default;
$item-custom-text: $button-custom-text !default;
$item-custom-active-bg: $button-custom-active-bg !default;
$item-custom-active-border: $button-custom-active-border !default;




// Toggle
// -------------------------------
$toggle-on-custom-bg: $button-custom-border !default;
$toggle-on-custom-border: $toggle-on-custom-bg !default;
$toggle-on-stable-bg: $button-stable-border !default;




// Checkbox
// -------------------------------
$checkbox-off-border-custom: $button-custom-border !default;
$checkbox-on-bg-custom: $button-custom-border !default;




// Range
// -------------------------------
$range-custom-track-bg: $button-custom-border !default;



// Badges
// -------------------------------
$badge-custom-bg: $button-custom-bg !default;
$badge-custom-text: $button-custom-text !default;

//Util

// Allow parent element of tabs to define color, or just the tab itself */
.tabs-custom > .tabs,
.tabs.tabs-custom {
  @include tab-style($tabs-custom-bg, $tabs-custom-border, $tabs-custom-text);
  @include tab-badge-style($tabs-custom-text, $tabs-custom-bg);
}

@mixin tabs-striped($style, $color) {
  &.#{$style} {
    .tab-item.tab-item-active,
    .tab-item.active,
    .tab-item.activated {
      margin-top: -4px;
      color: $color;
      border-style: solid;
      border-width: $tabs-striped-border-width 0 0 0;
      border-color: $color;
    }
  }
}

.tabs-striped {
  .tabs {

    background-color: #fff;
    background-image: none;
    border: 0;

  }

  @include tabs-striped('tabs-custom', $custom);
  .tab-item {
    color: $tabs-striped-off-color;
    opacity: $tabs-striped-off-opacity;
  }
}

// Navigational tab */

// Active state for tab

.tab-item.tab-item-active,
.tab-item.active,
.tab-item.activated {
  opacity: 1;

  &.tab-item-custom {
    color: $custom;
  }

}

.custom,
a.custom {
  color: $custom;
}

.custom-bg {
  background-color: $custom;
}

.custom-border {
  border-color: $button-custom-border;
}

.tabs .tab-item .badge,
.badge {
  &.badge-custom {
    @include badge-style($badge-custom-bg, $badge-custom-text);
  }
}

.bar {
  &.bar-custom {
    @include bar-style($bar-custom-bg, $bar-custom-border, $bar-custom-text);
  }
}

.bar-custom {
  .button {
    @include button-style($bar-custom-bg, $bar-custom-border, $bar-custom-active-bg, $bar-custom-active-border, $bar-custom-text);
    @include button-clear($bar-custom-text, $bar-title-font-size);
  }
}

.button {
  &.button-custom {
    @include button-style($button-custom-bg, $button-custom-border, $button-custom-active-bg, $button-custom-active-border, $button-custom-text);
    @include button-clear($button-custom-border);
    @include button-outline($button-custom-border);
  }
}

//This will be here
&.button-outline {
  @include button-outline($button-custom-border);
  @include transition(opacity .1s);
  background: none;
  box-shadow: none;
}

.button-clear {
  @include button-clear($button-custom-border);
  @include transition(opacity .1s);
  padding: 0 $button-clear-padding;
  max-height: $button-height;
  border-color: transparent;
  background: none;
  box-shadow: none;

  &.active,
  &.activated {
    opacity: 0.3;
  }
}

.item {
  &.item-custom {
    @include item-style($item-custom-bg, $item-custom-border, $item-custom-text);
  }
}

.item.active,
.item.activated,
.item-complex.active .item-content,
.item-complex.activated .item-content,
.item .item-content.active,
.item .item-content.activated {

  &.item-custom {
    @include item-active-style($item-custom-active-bg, $item-custom-active-border);
  }
}

.item-complex {

  &.item-custom > .item-content {
    @include item-style($item-custom-bg, $item-custom-border, $item-custom-text);

    &.active,
    &:active {
      @include item-active-style($item-custom-active-bg, $item-custom-active-border);
    }
  }
}

.checkbox {
  &.checkbox-custom {
    @include checkbox-style($checkbox-off-border-custom, $checkbox-on-bg-custom);
  }
}

.toggle {
  &.toggle-custom {
    @include toggle-style($toggle-on-custom-border, $toggle-on-custom-bg);
  }
}

.range {
  &.range-custom {
    input {
      @include range-style($range-custom-track-bg);
    }
  }
}