diff --git a/.ruby-version b/.ruby-version
new file mode 100644
index 0000000..d20760c
--- /dev/null
+++ b/.ruby-version
@@ -0,0 +1 @@
+ruby 2.1.1
diff --git a/app/templates/orbit_bootstrap/assets/javascripts/app.js b/app/templates/orbit_bootstrap/assets/javascripts/app.js
index 2eb610e..e99f69b 100644
--- a/app/templates/orbit_bootstrap/assets/javascripts/app.js
+++ b/app/templates/orbit_bootstrap/assets/javascripts/app.js
@@ -28,10 +28,14 @@ var response = function(width, element, fns) {
});
}
$(function() {
+
+ // 當有次選單時自動加入icon指標
$('.modules-menu-level-1, .modules-menu-level-2').before('');
$('.modules-menu').on('click', '.fa', function(event) {
$(this).next('ul').slideToggle(300);
});
+
+ // 移除當主選單在小螢幕時次選單被點擊後的display屬性
var menuLevel1 = new response(786, $('.modules-menu-level-1'), {
"over": function() {menuLevel1.element.removeAttr('style');},
"less": function() {return false}
diff --git a/app/templates/orbit_bootstrap/assets/javascripts/plugin/jquery.cycle2.carousel.min.js b/app/templates/orbit_bootstrap/assets/javascripts/plugin/jquery.cycle2.carousel.min.js
new file mode 100644
index 0000000..9af7203
--- /dev/null
+++ b/app/templates/orbit_bootstrap/assets/javascripts/plugin/jquery.cycle2.carousel.min.js
@@ -0,0 +1,2 @@
+/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20140114 */
+(function(e){"use strict";e(document).on("cycle-bootstrap",function(e,t,i){"carousel"===t.fx&&(i.getSlideIndex=function(e){var t=this.opts()._carouselWrap.children(),i=t.index(e);return i%t.length},i.next=function(){var e=t.reverse?-1:1;t.allowWrap===!1&&t.currSlide+e>t.slideCount-t.carouselVisible||(t.API.advanceSlide(e),t.API.trigger("cycle-next",[t]).log("cycle-next"))})}),e.fn.cycle.transitions.carousel={preInit:function(t){t.hideNonActive=!1,t.container.on("cycle-destroyed",e.proxy(this.onDestroy,t.API)),t.API.stopTransition=this.stopTransition;for(var i=0;t.startingSlide>i;i++)t.container.append(t.slides[0])},postInit:function(t){var i,n,s,o,r=t.carouselVertical;t.carouselVisible&&t.carouselVisible>t.slideCount&&(t.carouselVisible=t.slideCount-1);var l=t.carouselVisible||t.slides.length,c={display:r?"block":"inline-block",position:"static"};if(t.container.css({position:"relative",overflow:"hidden"}),t.slides.css(c),t._currSlide=t.currSlide,o=e('
').prependTo(t.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(t.slides),t._carouselWrap=o,r||o.css("white-space","nowrap"),t.allowWrap!==!1){for(n=0;(void 0===t.carouselVisible?2:1)>n;n++){for(i=0;t.slideCount>i;i++)o.append(t.slides[i].cloneNode(!0));for(i=t.slideCount;i--;)o.prepend(t.slides[i].cloneNode(!0))}o.find(".cycle-slide-active").removeClass("cycle-slide-active"),t.slides.eq(t.startingSlide).addClass("cycle-slide-active")}t.pager&&t.allowWrap===!1&&(s=t.slideCount-l,e(t.pager).children().filter(":gt("+s+")").hide()),t._nextBoundry=t.slideCount-t.carouselVisible,this.prepareDimensions(t)},prepareDimensions:function(t){var i,n,s,o,r=t.carouselVertical,l=t.carouselVisible||t.slides.length;if(t.carouselFluid&&t.carouselVisible?t._carouselResizeThrottle||this.fluidSlides(t):t.carouselVisible&&t.carouselSlideDimension?(i=l*t.carouselSlideDimension,t.container[r?"height":"width"](i)):t.carouselVisible&&(i=l*e(t.slides[0])[r?"outerHeight":"outerWidth"](!0),t.container[r?"height":"width"](i)),n=t.carouselOffset||0,t.allowWrap!==!1)if(t.carouselSlideDimension)n-=(t.slideCount+t.currSlide)*t.carouselSlideDimension;else for(s=t._carouselWrap.children(),o=0;t.slideCount+t.currSlide>o;o++)n-=e(s[o])[r?"outerHeight":"outerWidth"](!0);t._carouselWrap.css(r?"top":"left",n)},fluidSlides:function(t){function i(){clearTimeout(s),s=setTimeout(n,20)}function n(){t._carouselWrap.stop(!1,!0);var e=t.container.width()/t.carouselVisible;e=Math.ceil(e-r),t._carouselWrap.children().width(e),t._sentinel&&t._sentinel.width(e),l(t)}var s,o=t.slides.eq(0),r=o.outerWidth()-o.width(),l=this.prepareDimensions;e(window).on("resize",i),t._carouselResizeThrottle=i,n()},transition:function(t,i,n,s,o){var r,l={},c=t.nextSlide-t.currSlide,a=t.carouselVertical,d=t.speed;if(t.allowWrap===!1){s=c>0;var u=t._currSlide,p=t.slideCount-t.carouselVisible;c>0&&t.nextSlide>p&&u==p?c=0:c>0&&t.nextSlide>p?c=t.nextSlide-u-(t.nextSlide-p):0>c&&t.currSlide>p&&t.nextSlide>p?c=0:0>c&&t.currSlide>p?c+=t.currSlide-p:u=t.currSlide,r=this.getScroll(t,a,u,c),t.API.opts()._currSlide=t.nextSlide>p?p:t.nextSlide}else s&&0===t.nextSlide?(r=this.getDim(t,t.currSlide,a),o=this.genCallback(t,s,a,o)):s||t.nextSlide!=t.slideCount-1?r=this.getScroll(t,a,t.currSlide,c):(r=this.getDim(t,t.currSlide,a),o=this.genCallback(t,s,a,o));l[a?"top":"left"]=s?"-="+r:"+="+r,t.throttleSpeed&&(d=r/e(t.slides[0])[a?"height":"width"]()*t.speed),t._carouselWrap.animate(l,d,t.easing,o)},getDim:function(t,i,n){var s=e(t.slides[i]);return s[n?"outerHeight":"outerWidth"](!0)},getScroll:function(e,t,i,n){var s,o=0;if(n>0)for(s=i;i+n>s;s++)o+=this.getDim(e,s,t);else for(s=i;s>i+n;s--)o+=this.getDim(e,s,t);return o},genCallback:function(t,i,n,s){return function(){var i=e(t.slides[t.nextSlide]).position(),o=0-i[n?"top":"left"]+(t.carouselOffset||0);t._carouselWrap.css(t.carouselVertical?"top":"left",o),s()}},stopTransition:function(){var e=this.opts();e.slides.stop(!1,!0),e._carouselWrap.stop(!1,!0)},onDestroy:function(){var t=this.opts();t._carouselResizeThrottle&&e(window).off("resize",t._carouselResizeThrottle),t.slides.prependTo(t.container),t._carouselWrap.remove()}}})(jQuery);
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/bootstrap/_pagination.scss b/app/templates/orbit_bootstrap/assets/stylesheets/bootstrap/_pagination.scss
index 4db91a1..7b70c88 100644
--- a/app/templates/orbit_bootstrap/assets/stylesheets/bootstrap/_pagination.scss
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/bootstrap/_pagination.scss
@@ -9,8 +9,7 @@
> li {
display: inline; // Remove list-style and block-level defaults
- > a,
- > span {
+ > a {
position: relative;
float: left; // Collapse white-space
padding: $padding-base-vertical $padding-base-horizontal;
@@ -19,22 +18,13 @@
color: $pagination-color;
background-color: $pagination-bg;
border: 1px solid $pagination-border;
- // margin-left: -1px;
margin: 0 0.5em;
}
- // &:first-child {
- // > a,
- // > span {
- // margin-left: 0;
- // // @include border-left-radius($border-radius-base);
- // }
- // }
- // &:last-child {
- // > a,
- // > span {
- // // @include border-right-radius($border-radius-base);
- // }
- // }
+ &:first-child {
+ > a {
+ margin-left: 0;
+ }
+ }
}
> li > a,
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/base/_unity.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/base/_unity.scss
new file mode 100644
index 0000000..0a5e17e
--- /dev/null
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/base/_unity.scss
@@ -0,0 +1,37 @@
+// Title
+.unity-title {
+ margin-bottom: 1em;
+ border-bottom: 1px solid $theme-gray-light;
+ span {
+ display: inline-block;
+ margin-bottom: -2px;
+ border-bottom: 3px solid $brand-primary;
+ }
+ .layout-footer & {
+ margin-bottom: 10px;
+ border-bottom: none;
+ span {
+ display: inline;
+ margin-bottom: 0;
+ border-bottom: none;
+ }
+ }
+}
+
+// More
+.unity-more {
+ white-space: nowrap;
+ color: $brand-primary;
+ text-decoration: underline;
+}
+
+// Status
+.status {
+ background-color: $theme-gray-light;
+ &.status-top {
+ background-color: $brand-primary;
+ }
+ &.status-hot {
+ background-color: $brand-danger;
+ }
+}
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/layout/content.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/layout/content.scss
index 88596e8..e344ca4 100644
--- a/app/templates/orbit_bootstrap/assets/stylesheets/template/layout/content.scss
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/layout/content.scss
@@ -1,4 +1,6 @@
.layout-content {
+ min-height: 600px;
+ margin-bottom: 2em;
.container {
@extend .response-content;
}
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/ad_banner.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/ad_banner.scss
index 297d544..77ce90a 100644
--- a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/ad_banner.scss
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/ad_banner.scss
@@ -1,5 +1,5 @@
-.modules-adBanner {
- .modules-adBanner-content {
+.widget-adBanner {
+ .widget-adBanner-content {
width: 100%;
.slide-img {
@include size(100%, 100%);
@@ -9,7 +9,7 @@
}
}
}
- .modules-adBanner-overlay {
+ .widget-adBanner-overlay {
display: none !important;
right: 0;
bottom: 0;
@@ -62,15 +62,15 @@
}
}
}
- &.home,
- &.page, {
- .modules-adBanner-overlay {
+ &.widget1,
+ &.widget2, {
+ .widget-adBanner-overlay {
position: absolute;
@extend .response-content;
}
}
- &.home {
- .modules-adBanner-content {
+ &.widget1 {
+ .widget-adBanner-content {
.slide-img {
max-height: 200px;
@media (min-width: $screen-sm) {
@@ -82,8 +82,8 @@
}
}
}
- &.page {
- .modules-adBanner-content {
+ &.widget2 {
+ .widget-adBanner-content {
.slide-img {
max-height: 200px;
@media (min-width: $screen-md) {
@@ -92,13 +92,13 @@
}
}
}
- &.block {
- .modules-adBanner-content {
+ &.widget3 {
+ .widget-adBanner-content {
.slide-img {
max-height: 200px;
}
}
- .modules-adBanner-overlay {
+ .widget-adBanner-overlay {
position: absolute;
}
}
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/announcement.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/announcement.scss
index bee0b6c..b7cc901 100644
--- a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/announcement.scss
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/announcement.scss
@@ -1,102 +1,61 @@
-.modulesTitle {
- margin-bottom: 1em;
- border-bottom: 1px solid $theme-gray-light;
- span {
- display: inline-block;
- margin-bottom: -2px;
- border-bottom: 3px solid $brand-primary;
- }
-}
-.modulesmMore {
- white-space: nowrap;
- color: $brand-primary;
- text-decoration: underline;
-}
-
// Announcement MODULES
-.modules-announcement {
- .modules-title {
- @extend .modulesTitle;
+.widget-announcement {
+ .widget-title {
+ @extend .unity-title;
}
- .modules-part-subtitle {
+ .widget-subtitle {
color: lighten($theme-gray, 20%);
}
- .modules-content {
+ .widget-content {
margin-bottom: 2em;
}
- &.boxes {
- .modules-pic {
- height: 180px;
- .modules-part-date {
- position: absolute;
- bottom: 1em;
- left: 0;
- padding: 0.5em 0.8em;
- font-size: 0.8em;
- background-color: $brand-primary;
- color: #fff;
- }
- }
- .modules-part-title {
- margin-bottom: 1em;
- a {
- color: $brand-primary;
- text-decoration: none;
- }
- }
- // 在aside區塊下的時候class「modules-part, modules-pic」的狀態
- .aside & {
- .modules-content {
- width: auto;
- float: none;
- }
- }
- }
- &.section {
- .modules-pic {
- height: 180px;
- margin: 0 15px 1em;
- }
- .modules-content {
- & + .modules-content {
+
+ // 對應_wudget1.html.erb
+ &.wudget1 {
+ .widget-content {
+ & + .widget-content {
border-top: 1px dotted $theme-gray-light;
- .section-inner {
+ .widget-content-inner {
padding-top: 2em;
}
}
- }
- .modules-part-title {
- margin-bottom: 1em;
- font-size: 1.5em;
- a {
- color: $theme-gray-dark;
- text-decoration: none;
+ .widget-pic {
+ height: 180px;
+ margin: 0 15px 1em;
}
- }
- .modules-part-date {
- display: block;
- color: darken($theme-gray-light, 5%);
- i {
- color: $brand-primary;
+ .date {
+ display: block;
+ color: darken($theme-gray-light, 5%);
+ i {
+ color: $brand-primary;
+ }
}
- }
- @media (min-width: $screen-sm) {
- .modules-pic {
- height: 150px;
- margin: 0 0 1em;
+ .widget-content-title {
+ margin-bottom: 1em;
+ font-size: 1.5em;
+ a {
+ color: $theme-gray-dark;
+ text-decoration: none;
+ }
}
- .section-inner {
- margin: 0;
- }
- .modules-part-title {
- margin-bottom: 10px;
+ @media (min-width: $screen-sm) {
+ .widget-pic {
+ height: 150px;
+ margin: 0 0 1em;
+ }
+ .widget-content-inner {
+ margin: 0;
+ }
+ .widget-content-title {
+ margin-bottom: 10px;
+ }
}
}
- // 在aside區塊下的時候class「modules-part, modules-pic」的狀態
- .aside & {
- .modules-part,
- .modules-pic {
+ // 在 .layout-content .aside 的樣式
+ .layout-content .aside & {
+ .widget-part,
+ .widget-pic {
width: auto;
float: none;
@media (min-width: $screen-sm) {
@@ -105,62 +64,227 @@
}
}
}
+
+ // 對應_wudget2.html.erb
+ &.wudget2 {
+ .widget-content {
+ .widget-pic {
+ height: 180px;
+ .date {
+ position: absolute;
+ bottom: 1em;
+ left: 0;
+ padding: 0.5em 0.8em;
+ font-size: 0.8em;
+ background-color: $brand-primary;
+ color: #fff;
+ }
+ }
+ .widget-content-title {
+ margin-bottom: 1em;
+ a {
+ color: $brand-primary;
+ text-decoration: none;
+ }
+ }
+
+ // 在 .layout-content .aside 的樣式
+ .layout-content .aside & {
+ width: auto;
+ float: none;
+ }
+ }
+ }
.dotted {
margin-top: 0;
}
.more {
- @extend .modulesmMore;
+ @extend .unity-more;
}
}
// Announcement INDEX
.index-announcement {
.index-title {
- @extend .modulesTitle;
+ @extend .unity-title;
}
- .index-content {
+ &.index1 {
+ .index-content {
+ margin-bottom: 2em;
+ .date {
+ display: block;
+ margin-bottom: 1em;
+ color: darken($theme-gray-light, 5%);
+ i {
+ color: $brand-primary;
+ }
+ }
+ }
+ .index-content-inner {
+ border: 1px solid darken($theme-gray-lighter, 2%);
+ border-radius: 4px;
+ @include box-shadow(2px 2px 3px rgba($theme-gray-lighter, .8));
+ }
+ .index-pic {
+ height: 150px;
+ @include border-top-radius(3px);
+ }
+ .index-part {
+ padding: 1em;
+ }
+ .index-content-title {
+ margin-top: 0;
+ @media (min-width: $screen-sm) {
+ width: 100%;
+ line-height: 1.2em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ a {
+ color: $theme-gray;
+ text-decoration: none;
+ }
+ }
+ .index-subtitle {
+ color: lighten($theme-gray, 20%);
+ @media (min-width: $screen-sm) {
+ position: relative;
+ line-height: 1.5em;
+ overflow: hidden;
+ height: 1.5em*3;
+ max-height: 1.5em*3;
+ &:after {
+ content: "";
+ position: absolute;
+ bottom: -1.5em;
+ left: 0;
+ background-color: #eee;
+ @include size(100%, 1.5em);
+ @include box-shadow(0 -0.75em 10px #FFF);
+ }
+ }
+ }
+ }
+}
+
+// Announcement SHOW
+.show-announcement {
+ .show-title {
+ @extend .unity-title;
+ }
+ // .show-content {
+ // padding-right: 0;
+ // padding-left: 0;
+ // .img {
+ // display: inline-block;
+ // width: 100%;
+ // height: auto;
+ // opacity: (0.8);
+ // -webkit-filter: grayscale(100%) brightness(1.2);
+ // -moz-filter: grayscale(100%) brightness(1.2);
+ // filter: grayscale(100%) brightness(1.2);
+ // @include transition(all 0.2s ease);
+ // }
+ // .show-content-inner {
+ // position: relative;
+ // padding: 2px;
+ // z-index: 0;
+ // @include scale(1);
+ // @include transition(all 0.2s ease);
+ // &:hover {
+ // z-index: 1;
+ // @include scale(1.1);
+ // .img {
+ // opacity: (1);
+ // -webkit-filter: grayscale(0%) brightness(1);
+ // -moz-filter: grayscale(0%) brightness(1);
+ // filter: grayscale(0%) brightness(1);
+ // }
+ // }
+ // }
+ // }
+ .post-metadata {
+ border-bottom: 1px solid $theme-gray-light;
+ @include clearfix();
+ li {
+ margin-right: 1em;
+ margin-bottom: 0.6em;
+ float: left;
+ &.metadata-tags {
+ position: relative;
+ margin-right: 0;
+ padding-left: 1.6em;
+ clear: both;
+ float: none;
+ i {
+ position: absolute;
+ top: 7px;
+ left: 0;
+ }
+ }
+ &.metadata-tags {
+ .tag {
+ display: inline-block;
+ margin-bottom: 4px;
+ padding: 5px 8px;
+ font-size: 0.8em;
+ color: $theme-gray;
+ border: 1px solid $theme-gray-light;
+ text-decoration: none;
+ &:hover {
+ color: $theme-color-main;
+ border-color: $theme-color-main;
+ background-color: $theme-gray-lighter;
+ }
+ }
+ }
+ i {
+ color: darken($theme-gray-light, 10%);
+ }
+ }
+ }
+ .post-section {
+ @include clearfix();
margin-bottom: 2em;
- }
- .boxes-inner {
- border: 1px solid darken($theme-gray-lighter, 2%);
- border-radius: 4px;
- @include box-shadow(2px 2px 3px rgba($theme-gray-lighter, .8));
- }
- .index-pic {
- height: 150px;
- @include border-top-radius(3px);
- }
- .index-part {
- padding: 1em;
- }
- .index-part-title {
- margin-top: 0;
- @media (min-width: $screen-sm) {
- line-height: 1.2em;
- overflow: hidden;
- max-height: 1.2em*3;
- height: 1.2em*3;
- }
- a {
- color: $theme-gray;
- text-decoration: none;
+ .post-pic {
+ img {
+ @include size(100%, auto);
+ }
}
}
- .index-part-date {
- display: block;
- margin-bottom: 1em;
- color: darken($theme-gray-light, 5%);
- i {
- color: $brand-primary;
- }
- }
- .index-part-subtitle {
- color: lighten($theme-gray, 20%);
- @media (min-width: $screen-sm) {
- line-height: 1.5em;
- overflow: hidden;
- height: 1.5em*4;
- max-height: 1.5em*4;
+ .post-related {
+ padding-top: 1em;
+ border-top: 1px solid $theme-gray-light;
+ li {
+ padding-bottom: 3px;
+ padding-left: 1.6em;
+ & + li {
+ padding-top: 8px;
+ border-top: 1px dotted $theme-gray-light;
+ }
+ i {
+ margin: 8px 0 0 -1.6em;
+ float: left;
+ color: darken($theme-gray-light, 10%);
+ }
+ & > div {
+ display: inline-block;
+ }
+ a {
+ display: inline-block;
+ margin-bottom: 4px;
+ padding: 5px 8px;
+ font-size: 0.8em;
+ color: $theme-gray;
+ border: 1px solid $theme-gray-light;
+ text-decoration: none;
+ &:hover {
+ color: $theme-color-main;
+ border-color: $theme-color-main;
+ background-color: $theme-gray-lighter;
+ }
+ }
}
}
}
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/archives.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/archives.scss
new file mode 100644
index 0000000..3200d27
--- /dev/null
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/archives.scss
@@ -0,0 +1,28 @@
+// Link MODULES
+.widget-archive {
+ // 在 layout-content 下的樣式
+ .widget-title {
+ @extend .unity-title;
+ }
+ &.widget1 {
+ .widget-archive-item-group {
+ margin-bottom: 0;
+ }
+ }
+}
+
+// Link INDEX
+.index-archive {
+ .index-title {
+ @extend .unity-title;
+ }
+ &.index1 {
+ #index-archive-group {
+ .index-archives-files-list {
+ dd {
+ margin-bottom: 5px;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/faq.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/faq.scss
new file mode 100644
index 0000000..a461207
--- /dev/null
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/faq.scss
@@ -0,0 +1,46 @@
+// Faqs MODULES
+.widget-faqs {
+ &.widget1 {
+ .widget-content {
+ padding-bottom: 10px;
+ & + .widget-content {
+ border-top: 1px dotted $theme-gray-light;
+ }
+ .widget-content-title {
+ display: inline-block;
+ padding: 5px 0;
+ }
+ }
+
+ // 在 layout-content 下的樣式
+ .layout-content & {
+ .widget-title {
+ @extend .unity-title;
+ }
+ }
+
+ // 在 layout-footer 下的樣式
+ .layout-footer & {
+ .widget-content {
+ line-height: 2em;
+ border-top-color: $theme-gray;
+ }
+ }
+ }
+}
+
+// Faqs INDEX
+.index-faqs {
+ .index-title {
+ @extend .unity-title;
+ }
+ &.index1 {
+ .index-content {
+ list-style-type: decimal-leading-zero;
+ list-style-position: inside;
+ & + .index-content {
+ border-top: 1px dotted $theme-gray-light;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/gallery.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/gallery.scss
new file mode 100644
index 0000000..c70ded9
--- /dev/null
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/gallery.scss
@@ -0,0 +1,121 @@
+// Gallery MODULES
+.widget-gallery {
+ .widget-title {
+ @extend .unity-title;
+ }
+ .widget-content {
+ position: relative;
+ }
+ &.widget1 {
+ .widget-content {
+ overflow: hidden;
+ .widget-pic {
+ display: inline-block;
+ padding: 1px;
+ text-align: center;
+ @include size(33.3333%, auto);
+ img {
+ @include size(100%, 100%);
+ }
+ }
+ }
+ }
+ &.widget2 {
+ .widget-content {
+ margin-left: -5px;
+ margin-right: -5px;
+ .widget-pic {
+ margin-bottom: 10px;
+ padding-left: 5px;
+ padding-right: 5px;
+ img {
+ @include size(100%, auto);
+ }
+ }
+ }
+ }
+}
+
+.index-gallery {
+ .index-title {
+ @extend .unity-title;
+ }
+ &.index1 {
+ .index-content {
+ .index-content-inner {
+ position: relative;
+ }
+ .index-part {
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ bottom: 4px;
+ left: 4px;
+ overflow: hidden;
+ background-color: rgba($theme-color-main, 0.8);
+ @include transition(all 0.5s ease);
+ @include opacity(0);
+ .index-content-title {
+ @include transition(all 0.3s ease);
+ @include transition-delay(0.1s);
+ @include scale(0);
+ }
+ &:hover {
+ @include opacity(1);
+ .index-content-title {
+ @include scale(1);
+ }
+ }
+ }
+ .index-content-title {
+ display: table;
+ margin: 0;
+ @include size(100%, 100%);
+ a {
+ display: table-cell;
+ color: #FFF;
+ text-decoration: none;
+ text-align: center;
+ vertical-align: middle;
+ }
+ }
+ }
+ }
+}
+
+.show-gallery {
+ .show-title {
+ @extend .unity-title;
+ }
+ .show-content {
+ padding-right: 0;
+ padding-left: 0;
+ .img {
+ display: inline-block;
+ width: 100%;
+ height: auto;
+ opacity: (0.8);
+ -webkit-filter: grayscale(100%) brightness(1.2);
+ -moz-filter: grayscale(100%) brightness(1.2);
+ filter: grayscale(100%) brightness(1.2);
+ @include transition(all 0.2s ease);
+ }
+ .show-content-inner {
+ position: relative;
+ padding: 2px;
+ z-index: 0;
+ @include scale(1);
+ @include transition(all 0.2s ease);
+ &:hover {
+ z-index: 1;
+ @include scale(1.1);
+ .img {
+ opacity: (1);
+ -webkit-filter: grayscale(0%) brightness(1);
+ -moz-filter: grayscale(0%) brightness(1);
+ filter: grayscale(0%) brightness(1);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/web_resource.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/web_resource.scss
index 1fdb966..1eb82c7 100644
--- a/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/web_resource.scss
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/modules/web_resource.scss
@@ -1,2 +1,47 @@
-.modules-link {
+// Link MODULES
+.widget-link {
+ // 在 layout-content 下的樣式
+ .widget-title {
+ @extend .unity-title;
+ }
+ &.widget1 {
+ .widget-content {
+ line-height: 2.5em;
+ & + .widget-content {
+ border-top: 1px dotted $theme-gray-light;
+ }
+ .widget-content-title {
+ display: inline-block;
+ }
+ }
+
+ // 在 layout-footer 下的樣式
+ .layout-footer & {
+ .widget-content {
+ line-height: 2em;
+ border-top-color: $theme-gray;
+ }
+ }
+ }
+}
+
+// Link INDEX
+.index-link {
+ .index-title {
+ @extend .unity-title;
+ }
+ &.index1 {
+ .index-content {
+ list-style-type: decimal-leading-zero;
+ list-style-position: inside;
+ & + .index-content {
+ border-top: 1px dotted $theme-gray-light;
+ }
+ .index-context {
+ display: inline-block;
+ margin: 0 0 10px 2em;
+ color: darken($theme-gray-light, 20%);
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/templates/orbit_bootstrap/assets/stylesheets/template/template.scss b/app/templates/orbit_bootstrap/assets/stylesheets/template/template.scss
index 6bd08a1..53bef98 100644
--- a/app/templates/orbit_bootstrap/assets/stylesheets/template/template.scss
+++ b/app/templates/orbit_bootstrap/assets/stylesheets/template/template.scss
@@ -4,6 +4,7 @@
@import "bootstrap/variables";
@import "base/mixins";
@import "base/variables";
+@import "base/unity";
// Layout
@import "layout/header";
@@ -15,7 +16,10 @@
@import "modules/menu";
@import "modules/ad_banner";
@import "modules/announcement";
+@import "modules/faq";
@import "modules/web_resource";
+@import "modules/gallery";
+@import "modules/archives";
body {
font-family: 'Droid Sans';
diff --git a/app/templates/orbit_bootstrap/home/header.html.erb b/app/templates/orbit_bootstrap/home/header.html.erb
index 176b0ff..bb666c8 100644
--- a/app/templates/orbit_bootstrap/home/header.html.erb
+++ b/app/templates/orbit_bootstrap/home/header.html.erb
@@ -1,3 +1,14 @@
+
+
+
+
+