(Charset.availableCharsets().values());
33 | }
34 |
35 | /**
36 | * Indicates whether the {@code Accept-Charset} should be written to any
37 | * outgoing request.
38 | *
39 | * Default is {@code true}.
40 | */
41 | public void setWriteAcceptCharset(boolean writeAcceptCharset) {
42 | this.writeAcceptCharset = writeAcceptCharset;
43 | }
44 |
45 | @Override
46 | public boolean supports(Class> clazz) {
47 | return String.class.equals(clazz);
48 | }
49 |
50 | @Override
51 | protected String readInternal(Class extends String> clazz, HttpInputMessage inputMessage) throws IOException {
52 | Charset charset = getContentTypeCharset(inputMessage.getHeaders().getContentType());
53 | return FileCopyUtils.copyToString(new InputStreamReader(inputMessage.getBody(), charset));
54 | }
55 |
56 | @Override
57 | protected Long getContentLength(String s, MediaType contentType) {
58 | Charset charset = getContentTypeCharset(contentType);
59 | try {
60 | return (long) s.getBytes(charset.name()).length;
61 | } catch (UnsupportedEncodingException ex) {
62 | throw new InternalError(ex.getMessage());
63 | }
64 | }
65 |
66 | @Override
67 | protected void writeInternal(String s, HttpOutputMessage outputMessage) throws IOException {
68 | if (writeAcceptCharset) {
69 | outputMessage.getHeaders().setAcceptCharset(getAcceptedCharsets());
70 | }
71 | Charset charset = getContentTypeCharset(outputMessage.getHeaders().getContentType());
72 | FileCopyUtils.copy(s, new OutputStreamWriter(outputMessage.getBody(), charset));
73 | }
74 |
75 | /**
76 | * Return the list of supported {@link Charset}.
77 | *
78 | *
79 | * By default, returns {@link Charset#availableCharsets()}. Can be
80 | * overridden in subclasses.
81 | *
82 | * @return the list of accepted charsets
83 | */
84 | protected List getAcceptedCharsets() {
85 | return this.availableCharsets;
86 | }
87 |
88 | private Charset getContentTypeCharset(MediaType contentType) {
89 | if (contentType != null && contentType.getCharset() != null) {
90 | return contentType.getCharset();
91 | } else {
92 | return DEFAULT_CHARSET;
93 | }
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/src/main/webapp/static/js/plugins/layer/layim/data/friend.json:
--------------------------------------------------------------------------------
1 | {
2 | "status": 1,
3 | "msg": "ok",
4 | "data": [
5 | {
6 | "name": "销售部",
7 | "nums": 36,
8 | "id": 1,
9 | "item": [
10 | {
11 | "id": "100001",
12 | "name": "郭敬明",
13 | "face": "img/a5.jpg"
14 | },
15 | {
16 | "id": "100002",
17 | "name": "作家崔成浩",
18 | "face": "img/a6.jpg"
19 | },
20 | {
21 | "id": "1000022",
22 | "name": "韩寒",
23 | "face": "img/a7.jpg"
24 | },
25 | {
26 | "id": "10000222",
27 | "name": "范爷",
28 | "face": "img/a8.jpg"
29 | },
30 | {
31 | "id": "100002222",
32 | "name": "小马哥",
33 | "face": "img/a9.jpg"
34 | }
35 | ]
36 | },
37 | {
38 | "name": "大学同窗",
39 | "nums": 16,
40 | "id": 2,
41 | "item": [
42 | {
43 | "id": "1000033",
44 | "name": "苏醒",
45 | "face": "img/a9.jpg"
46 | },
47 | {
48 | "id": "10000333",
49 | "name": "马云",
50 | "face": "img/a8.jpg"
51 | },
52 | {
53 | "id": "100003",
54 | "name": "鬼脚七",
55 | "face": "img/a7.jpg"
56 | },
57 | {
58 | "id": "100004",
59 | "name": "谢楠",
60 | "face": "img/a6.jpg"
61 | },
62 | {
63 | "id": "100005",
64 | "name": "徐峥",
65 | "face": "img/a5.jpg"
66 | }
67 | ]
68 | },
69 | {
70 | "name": "H+后台主题",
71 | "nums": 38,
72 | "id": 3,
73 | "item": [
74 | {
75 | "id": "100006",
76 | "name": "柏雪近在它香",
77 | "face": "img/a4.jpg"
78 | },
79 | {
80 | "id": "100007",
81 | "name": "罗昌平",
82 | "face": "img/a3.jpg"
83 | },
84 | {
85 | "id": "100008",
86 | "name": "Crystal影子",
87 | "face": "img/a2.jpg"
88 | },
89 | {
90 | "id": "100009",
91 | "name": "艺小想",
92 | "face": "img/a1.jpg"
93 | },
94 | {
95 | "id": "100010",
96 | "name": "天猫",
97 | "face": "img/a8.jpg"
98 | },
99 | {
100 | "id": "100011",
101 | "name": "张泉灵",
102 | "face": "img/a7.jpg"
103 | }
104 | ]
105 | }
106 | ]
107 | }
108 |
--------------------------------------------------------------------------------
/src/main/webapp/WEB-INF/views/login.jsp:
--------------------------------------------------------------------------------
1 | <%@ page language="java" contentType="text/html; charset=UTF-8"
2 | pageEncoding="UTF-8"%>
3 | <%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";%>
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 测试 | 登录
12 |
13 |
14 |
15 |
16 |
17 |
18 |
24 |
25 |
28 |
57 | 2018 © Kettle-web By felixhpp@163.com.
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/src/main/webapp/static/lib/bootstrap-fileinput/themes/explorer/theme.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * bootstrap-fileinput v4.4.2
3 | * http://plugins.krajee.com/file-input
4 | *
5 | * Krajee Explorer theme style for bootstrap-fileinput. Load this theme file after loading `fileinput.css`.
6 | *
7 | * Author: Kartik Visweswaran
8 | * Copyright: 2014 - 2017, Kartik Visweswaran, Krajee.com
9 | *
10 | * Licensed under the BSD 3-Clause
11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
12 | */.theme-explorer .file-preview .table{margin:0}.theme-explorer .explorer-frame td{vertical-align:middle;text-align:left}.explorer-frame .file-preview-text{display:inline-block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.explorer-frame .file-preview-html{display:inline-block;border:1px solid #ddd;padding:8px;overflow:auto}.explorer-frame .file-preview-other{text-align:center}.explorer-frame .file-other-icon{font-size:4.2em}.theme-explorer .explorer-frame .kv-file-content{width:80px;height:80px;padding:5px;text-align:center}.theme-explorer .file-actions-cell{width:100px;padding:0;position:relative}.theme-explorer .file-thumb-progress .progress{display:block;margin-top:5px}.theme-explorer .file-thumb-progress .progress,.theme-explorer .file-thumb-progress .progress-bar{height:13px;font-size:11px;line-height:13px}.theme-explorer .file-drag-handle,.theme-explorer .file-upload-indicator{position:absolute;text-align:center;top:0;right:0;padding-left:5px;padding-right:2px;border-right:none;border-top:none;border-left:1px solid #8a6d3b;border-bottom:1px solid #8a6d3b;border-bottom-left-radius:11px;font-size:12px}.theme-explorer .explorer-caption{display:block;color:#777}.theme-explorer .file-actions{text-align:center}.theme-explorer .kvsortable-ghost{opacity:.6;background:#e1edf7;border:2px solid #a1abff}.theme-explorer .file-upload-indicator{font-size:13px;padding-left:6px;background-color:#fcf8e3;border-color:#faebcc}.theme-explorer .file-drag-handle{right:-2px;background-color:#d9edf7;border-color:#bce8f1}.theme-explorer .file-preview-error .file-upload-indicator{background-color:#f2dede;border-color:#ebccd1}.theme-explorer .file-preview-success .file-upload-indicator{background-color:#dff0d8;border-color:#d6e9c6}.theme-explorer .file-preview-loading .file-upload-indicator{background-color:#e5e5e5;border-color:#777}.theme-explorer .file-error-message ul{padding-left:15px}.theme-explorer .file-error-message .close{margin-top:-5px;margin-right:-5px}@media only screen and (max-width:500px){.theme-explorer .table,.theme-explorer .table tbody,.theme-explorer .table td,.theme-explorer .table tr{display:block;width:100%!important}.theme-explorer .table{border:none}.theme-explorer .table tr{margin-top:5px}.theme-explorer .table tr:first-child{margin-top:0}.theme-explorer .table td{text-align:center}.theme-explorer .table .kv-file-content{border-bottom:none;padding:4px;margin:0}.theme-explorer .table .kv-file-content .file-preview-image{max-width:100%;font-size:20px}.theme-explorer .file-details-cell{border-top:none;border-bottom:none;padding-top:0;margin:0}.theme-explorer .file-actions-cell{border-top:none;padding-bottom:4px}.theme-explorer .explorer-frame .explorer-caption{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;left:0;right:0;margin:auto}.theme-explorer .file-drag-handle,.theme-explorer .file-upload-indicator{right:0;bottom:0;border-top-left-radius:40px;border-bottom-left-radius:0;padding:12px 3px 0 6px}.theme-explorer .file-actions-cell .btn-xs{font-size:.9em;padding:2px 7px;margin-right:3px;cursor:pointer}}
--------------------------------------------------------------------------------
/src/main/webapp/static/js/plugins/layer/laydate/skins/default/laydate.css:
--------------------------------------------------------------------------------
1 | /**
2 |
3 | @Name: laydate皮肤:墨绿
4 | @Author:贤心
5 | @Site:http://sentsin.com/layui/laydate
6 |
7 | **/
8 |
9 | .laydate-icon{border:1px solid #ccc; background-image:url(icon.png)}
10 |
11 | .laydate_body .laydate_bottom #laydate_hms,
12 | .laydate_body .laydate_time{border:1px solid #ccc;}
13 |
14 | .laydate_body .laydate_box,
15 | .laydate_body .laydate_ym .laydate_yms,
16 | .laydate_body .laydate_time{box-shadow: 2px 2px 5px rgba(0,0,0,.1);}
17 |
18 | .laydate_body .laydate_box{border-top:none; border-bottom:none; background-color:#fff; color:#00625A;}
19 | .laydate_body .laydate_box input{background:none!important; color:#fff;}
20 | .laydate_body .laydate_box .laydate_void{color:#00E8D7!important;}
21 | .laydate_body .laydate_box a, .laydate_body .laydate_box a:hover{color:#00625A;}
22 | .laydate_body .laydate_box a:hover{color:#666;}
23 | .laydate_body .laydate_click{background-color:#009F95!important; color:#fff!important;}
24 | .laydate_body .laydate_top{border-top:1px solid #009F95; background-color:#009F95}
25 | .laydate_body .laydate_ym{border:1px solid #009F95; background-color:#009F95;}
26 | .laydate_body .laydate_ym .laydate_yms{border:1px solid #009F95; background-color:#009F95; color:#fff;}
27 | .laydate_body .laydate_y .laydate_yms a{border-bottom:1px solid #009F95;}
28 | .laydate_body .laydate_y .laydate_yms .laydate_chdown{border-top:1px solid #009F95; border-bottom:none;}
29 | .laydate_body .laydate_choose{border-left:1px solid #009F95;}
30 | .laydate_body .laydate_chprev{border-left:none; border-right:1px solid #009F95;}
31 | .laydate_body .laydate_choose:hover,
32 | .laydate_body .laydate_y .laydate_yms a:hover{background-color:#00C1B3;}
33 | .laydate_body .laydate_chtop cite{border-bottom-color:#fff;}
34 | .laydate_body .laydate_chdown cite, .laydate_body .laydate_ym label{border-top-color:#fff;}
35 | .laydate_body .laydate_chprev cite{border-right-style:solid; border-right-color:#fff;}
36 | .laydate_body .laydate_chnext cite{border-left-style:solid; border-left-color:#fff;}
37 | .laydate_body .laydate_table{width: 240px!important; margin: 0!important; border:1px solid #ccc; border-top:none; border-bottom:none;}
38 | .laydate_body .laydate_table td{border:none; height:21px!important; line-height:21px!important; background-color:#fff; color:#00625A;}
39 | .laydate_body .laydate_table .laydate_nothis{color:#999;}
40 | .laydate_body .laydate_table thead{border-bottom:1px solid #ccc; height:21px!important; line-height:21px!important;}
41 | .laydate_body .laydate_table thead th{}
42 | .laydate_body .laydate_bottom{border:1px solid #ccc; border-top:none;}
43 | .laydate_body .laydate_bottom #laydate_hms{background-color:#fff;}
44 | .laydate_body .laydate_time{background-color:#fff;}
45 | .laydate_body .laydate_time1{width: 226px!important; height: 152px!important;}
46 | .laydate_body .laydate_bottom .laydate_sj{width:31px!important; border-right:1px solid #ccc; background-color:#fff;}
47 | .laydate_body .laydate_bottom input{background-color:#fff; color:#00625A;}
48 | .laydate_body .laydate_bottom .laydte_hsmtex{border-bottom:1px solid #ccc;}
49 | .laydate_body .laydate_bottom .laydate_btn{border-right:1px solid #ccc;}
50 | .laydate_body .laydate_bottom .laydate_v{color:#999}
51 | .laydate_body .laydate_bottom .laydate_btn a{border: 1px solid #ccc; border-right:none; background-color:#fff;}
52 | .laydate_body .laydate_bottom .laydate_btn a:hover{background-color:#F6F6F6; color:#00625A;}
53 |
54 | .laydate_body .laydate_m .laydate_yms span:hover,
55 | .laydate_body .laydate_time .laydate_hmsno span:hover,
56 | .laydate_body .laydate_y .laydate_yms ul li:hover,
57 | .laydate_body .laydate_table td:hover{background-color:#00C1B3; color:#fff;}
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/main/java/indi/felix/kw/web/controller/PageController.java:
--------------------------------------------------------------------------------
1 | package indi.felix.kw.web.controller;
2 |
3 | import org.springframework.stereotype.Controller;
4 | import org.springframework.ui.Model;
5 | import org.springframework.web.bind.annotation.ModelAttribute;
6 | import org.springframework.web.bind.annotation.RequestMapping;
7 |
8 | import javax.servlet.http.HttpSession;
9 |
10 | @Controller
11 | @RequestMapping("/view/")
12 | public class PageController {
13 |
14 |
15 | @RequestMapping("indexUI.shtml")
16 | public String IndexUI(){
17 | return "index";
18 | }
19 |
20 | @RequestMapping("mainUI.shtml")
21 | public String mainUI(){
22 | return "main";
23 | }
24 |
25 | @RequestMapping("loginUI.shtml")
26 | public String loginUI(@ModelAttribute("errorMsg") String errorMsg, HttpSession session){
27 | session.setAttribute("errorMsg", errorMsg);
28 | return "login";
29 | }
30 |
31 | /**==========repository start==========**/
32 |
33 | @RequestMapping("repostory/listUI.shtml")
34 | public String repostoryListUI(){
35 | return "repository/list";
36 | }
37 |
38 | /**==========repository end==========**/
39 |
40 | /**==========job start==========**/
41 |
42 | @RequestMapping("job/listUI.shtml")
43 | public String jobListUI(){
44 | return "job/list";
45 | }
46 |
47 | @RequestMapping("job/rAddUI.shtml")
48 | public String jobRAddUI(){
49 | return "job/r-add";
50 | }
51 |
52 | @RequestMapping("job/fAddUI.shtml")
53 | public String jobFAddUI(){
54 | return "job/f-add";
55 | }
56 |
57 | @RequestMapping("job/editUI.shtml")
58 | public String jobEditUI(Integer jobId, Model model){
59 | model.addAttribute("jobId", jobId);
60 | return "job/edit";
61 | }
62 |
63 | /**==========job end==========**/
64 |
65 | /**==========trans start ==========**/
66 |
67 | @RequestMapping("trans/listUI.shtml")
68 | public String transListUI(){
69 | return "trans/list";
70 | }
71 |
72 | @RequestMapping("trans/rAddUI.shtml")
73 | public String transRAddUI(){
74 | return "trans/r-add";
75 | }
76 |
77 | @RequestMapping("trans/fAddUI.shtml")
78 | public String transFAddUI(){
79 | return "trans/f-add";
80 | }
81 |
82 | @RequestMapping("trans/editUI.shtml")
83 | public String transEditUI(Integer transId, Model model){
84 | model.addAttribute("transId", transId);
85 | return "trans/edit";
86 | }
87 |
88 | /**==========trans end ==========**/
89 |
90 | /**==========user start==========**/
91 |
92 | @RequestMapping("user/listUI.shtml")
93 | public String userListUI(){
94 | return "user/list";
95 | }
96 |
97 | /**==========user end==========**/
98 |
99 | /**==========quartz start==========**/
100 |
101 | @RequestMapping("quartz/listUI.shtml")
102 | public String quartzListUI(){
103 | return "quartz/list";
104 | }
105 |
106 | /**==========quartz end==========**/
107 |
108 | /**==========record start==========**/
109 |
110 | @RequestMapping("trans/record/listUI.shtml")
111 | public String transRecordListUI(Integer transId, Model model){
112 | model.addAttribute("transId", transId);
113 | return "record/t-list";
114 | }
115 |
116 | @RequestMapping("job/record/listUI.shtml")
117 | public String jobRecordListUI(Integer jobId, Model model){
118 | model.addAttribute("jobId", jobId);
119 | return "record/j-list";
120 | }
121 |
122 | /**==========record end==========**/
123 |
124 | /**==========monitor start==========**/
125 |
126 | @RequestMapping("trans/monitor/listUI.shtml")
127 | public String transMonitorListUI(){
128 | return "monitor/t-list";
129 | }
130 |
131 | @RequestMapping("job/monitor/listUI.shtml")
132 | public String jobMonitorListUI(){
133 | return "monitor/j-list";
134 | }
135 |
136 | /**==========monitor start==========**/
137 | }
138 |
--------------------------------------------------------------------------------
/src/main/webapp/static/lib/metronic/css/login-soft.css:
--------------------------------------------------------------------------------
1 | /*--------------------------------------------------
2 | [TRANSITION]
3 | ----------------------------------------------------*/
4 | /* Cubic Bezier Transition */
5 | /***
6 | Login page
7 | ***/
8 | /* logo page */
9 | .login {
10 | margin-top: 100px!important;
11 | background-color: #666 !important;
12 | }
13 |
14 | .login .logo {
15 | margin: 60px auto 20px auto;
16 | padding: 15px;
17 | text-align: center;
18 | }
19 |
20 | .login .content {
21 | background: url(../img/bg-white-lock.png) repeat;
22 | width: 360px;
23 | margin: 0 auto;
24 | margin-bottom: 0px;
25 | padding: 30px;
26 | padding-top: 20px;
27 | padding-bottom: 15px;
28 | -webkit-border-radius: 7px;
29 | -moz-border-radius: 7px;
30 | -ms-border-radius: 7px;
31 | -o-border-radius: 7px;
32 | border-radius: 7px;
33 | }
34 |
35 | .login .content h3 {
36 | color: #eee;
37 | }
38 |
39 | .login .content h4 {
40 | color: #eee;
41 | }
42 |
43 | .login .content p,
44 | .login .content label {
45 | color: #fff;
46 | }
47 |
48 | .login .content .login-form,
49 | .login .content .forget-form {
50 | padding: 0px;
51 | margin: 0px;
52 | }
53 |
54 | .login .content .form-control {
55 | background-color: #fff;
56 | }
57 |
58 | .login .content .forget-form {
59 | display: none;
60 | }
61 |
62 | .login .content .register-form {
63 | display: none;
64 | }
65 |
66 | .login .content .form-title {
67 | font-weight: 300;
68 | margin-bottom: 25px;
69 | }
70 |
71 | .login .content .form-actions {
72 | background-color: transparent;
73 | clear: both;
74 | border: 0px;
75 | padding: 0px 30px 25px 30px;
76 | margin-left: -30px;
77 | margin-right: -30px;
78 | }
79 |
80 | .login .content .form-actions .checkbox {
81 | margin-left: 0;
82 | padding-left: 0;
83 | }
84 |
85 | .login .content .forget-form .form-actions {
86 | border: 0;
87 | margin-bottom: 0;
88 | padding-bottom: 20px;
89 | }
90 |
91 | .login .content .register-form .form-actions {
92 | border: 0;
93 | margin-bottom: 0;
94 | padding-bottom: 0px;
95 | }
96 |
97 | .login .content .form-actions .checkbox {
98 | margin-top: 8px;
99 | display: inline-block;
100 | }
101 |
102 | .login .content .form-actions .btn {
103 | margin-top: 1px;
104 | }
105 |
106 | .login .content .forget-password {
107 | margin-top: 25px;
108 | }
109 |
110 | .login .content .create-account {
111 | border-top: 1px dotted #eee;
112 | padding-top: 10px;
113 | margin-top: 15px;
114 | }
115 |
116 | .login .content .create-account a {
117 | display: inline-block;
118 | margin-top: 5px;
119 | }
120 |
121 | /* select2 dropdowns */
122 | .login .content .select2-container i {
123 | display: inline-block;
124 | position: relative;
125 | color: #ccc;
126 | z-index: 1;
127 | top: 1px;
128 | margin: 4px 4px 0px -1px;
129 | width: 16px;
130 | height: 16px;
131 | font-size: 16px;
132 | text-align: center;
133 | }
134 |
135 | .login .content .has-error .select2-container i {
136 | color: #b94a48;
137 | }
138 |
139 | .login .content .select2-container a span {
140 | font-size: 13px;
141 | }
142 |
143 | .login .content .select2-container a span img {
144 | margin-left: 4px;
145 | }
146 |
147 | /* footer copyright */
148 | .login .copyright {
149 | text-align: center;
150 | margin: 0 auto;
151 | padding: 10px;
152 | color: #eee;
153 | font-size: 13px;
154 | }
155 |
156 | @media (max-width: 480px) {
157 | /***
158 | Login page
159 | ***/
160 | .login .logo {
161 | margin-top: 10px;
162 | }
163 |
164 | .login .content {
165 | padding: 30px;
166 | width: 222px;
167 | }
168 |
169 | .login .content h3 {
170 | font-size: 22px;
171 | }
172 |
173 | .login .checkbox {
174 | font-size: 13px;
175 | }
176 | }
177 |
--------------------------------------------------------------------------------
/src/main/webapp/static/lib/jquery.uniform/themes/css/uniform.default.scss:
--------------------------------------------------------------------------------
1 | /*
2 | Uniform Theme: Uniform Default
3 | Version: 1.8
4 | By: Josh Pyles
5 | License: MIT License
6 | ---
7 | For use with the Uniform plugin:
8 | http://uniformjs.com/
9 | */
10 |
11 | $button-height: 30px;
12 | $button-margin-left: 13px;
13 | $button-padding: 8px 15px 0 2px;
14 | $button-span-height: 22px;
15 | $checkbox-height: 19px;
16 | $checkbox-width: 19px;
17 | $input-padding: 3px;
18 | $radio-height: 18px;
19 | $radio-width: 18px;
20 | $select-fixed-width: 190px;
21 | $select-height: 26px;
22 | $select-margin-left: 10px;
23 | $select-margin-right: 25px;
24 | $select-select-height: 22px;
25 | $select-select-top: 2px;
26 | $upload-action-width: 82px;
27 | $upload-filename-margin-top: 2px;
28 | $upload-filename-margin-bottom: 2px;
29 | $upload-filename-margin-left: 2px;
30 | $upload-filename-width: 85px;
31 | $upload-filename-padding: 0 10px;
32 | $upload-height: 28px;
33 | $upload-width: 190px;
34 |
35 | @import "../../_base/css/uniform._base.scss";
36 |
37 | /* INPUT & TEXTAREA */
38 |
39 | #{$class-wrapper-element}#{$class-wrapper} input#{$class-input},
40 | #{$class-wrapper-element}#{$class-wrapper} select#{$class-multiselect},
41 | #{$class-wrapper-element}#{$class-wrapper} textarea#{$class-textarea} {
42 | font-size: 12px;
43 | font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
44 | font-weight: normal;
45 | color: #777777;
46 | border: 1px solid #aaaaaa;
47 | border-right-color: #cccccc;
48 | border-bottom-color: #cccccc;
49 | @include border-radius($input-padding);
50 |
51 | @include whenHover {
52 | @include box-shadow(0px 0px 4px rgba(0, 0, 0, 0.3));
53 | border-color: #999999;
54 | }
55 | }
56 |
57 | /* PRESENTATION */
58 |
59 | /* Buttons */
60 |
61 | div#{$class-wrapper}#{$class-button} {
62 | span {
63 | font-weight: bold;
64 | font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
65 | font-size: 12px;
66 | letter-spacing: 1px;
67 | text-transform: uppercase;
68 | }
69 |
70 | @include whenHover {
71 | span {
72 | color: #555555;
73 | }
74 | }
75 |
76 | @include whenDisabled {
77 | span {
78 | color: #bbbbbb;
79 | }
80 | }
81 | }
82 |
83 | /* Select */
84 |
85 | div#{$class-wrapper}#{$class-select} {
86 | font-size: 12px;
87 |
88 | span {
89 | color: #666666;
90 | text-shadow: 0 1px 0 #ffffff;
91 | }
92 |
93 | select {
94 | font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
95 | font-size: 12px;
96 | }
97 |
98 | @include whenDisabled {
99 | span {
100 | color: #bbbbbb;
101 | }
102 | }
103 | }
104 |
105 | /* Checker */
106 | div#{$class-wrapper}#{$class-checkbox} {
107 | margin-right: 5px;
108 | }
109 |
110 | /* Radio */
111 | div#{$class-wrapper}#{$class-radio} {
112 | margin-right: 3px;
113 | }
114 |
115 | /* Uploader */
116 | div#{$class-wrapper}#{$class-upload} {
117 | span#{$class-action} {
118 | text-shadow: #ffffff 0 1px 0;
119 | background-color: #ffffff;
120 | font-size: 11px;
121 | font-weight: bold;
122 | }
123 |
124 | span#{$class-filename} {
125 | color: #777777;
126 | border-right: solid 1px #bbbbbb;
127 | font-size: 11px;
128 | }
129 |
130 | @include whenDisabled {
131 | span#{$class-action} {
132 | color: #aaaaaa;
133 | }
134 |
135 | span#{$class-filename} {
136 | border-color: #dddddd;
137 | color: #aaaaaa;
138 | }
139 | }
140 | }
141 |
142 | #{$class-wrapper-element}#{$class-wrapper} input#{$class-input} {
143 | &, &:focus {
144 | background-color: #ffffff;
145 | }
146 | }
147 |
--------------------------------------------------------------------------------