Commit 04cbb68af7c21a6a404358f333e1f47161917250

Authored by DANG
1 parent f74595eadb
Exists in master and in 1 other branch develop

design text basic

Showing 4 changed files with 301 additions and 74 deletions Side-by-side Diff

app/fonts/font_canvas/font-canvas.css
... ... @@ -6,17 +6,61 @@
6 6 font-family: 'gn_fuyu_iro_script_bold';
7 7 src: url(GN-Fuyu-iro_Script_Bold.ttf);
8 8 }
  9 +@font-face {
  10 + font-family: 'gn_killgothic_u_kanana';
  11 + src: url(GN-KillGothic-U-KanaNA.ttf);
  12 +}
9 13  
10 14 @font-face {
11   - font-family: 'gn_aki_iro_sesami_cookies';
12   - src: url(GN-Aki-iro_Sesami_Cookies.ttf);
  15 + font-family: 'gn_kin_iro_alphabet_cookies';
  16 + src: url(GN-Kin-iro_Alphabet_Cookies.ttf);
13 17 }
14 18 @font-face {
15   - font-family: 'gn_aki_iro_sesami_cookies';
16   - src: url(GN-Aki-iro_Sesami_Cookies.ttf);
  19 + font-family: 'gn_kin_iro_sansserif';
  20 + src: url(GN-Kin-iro_SansSerif.ttf);
17 21 }
18 22 @font-face {
19   - font-family: 'gn_killgothic_u_kanana';
20   - src: url(GN-KillGothic-U-KanaNA.ttf);
  23 + font-family: 'gn_koharuiro_sunray';
  24 + src: url(GN-Koharuiro_Sunray.ttf);
  25 +}
  26 +@font-face {
  27 + font-family: 'gn_kyu_pin';
  28 + src: url(GN-Kyu-pin.ttf);
  29 +}
  30 +@font-face {
  31 + font-family: 'gn_natsu_iro_schedule';
  32 + src: url(GN-Natsu-iro-Schedule.ttf);
  33 +}
  34 +@font-face {
  35 + font-family: 'gn_natsuiro_schedule';
  36 + src: url(GN-Natsuiro_Schedule.ttf);
  37 +}
  38 +@font-face {
  39 + font-family: 'gnkana_kiniro_elegance';
  40 + src: url(GNKana-Kiniro_Elegance.ttf);
  41 +}
  42 +@font-face {
  43 + font-family: 'gnkana_kiniro_sansserif_l';
  44 + src: url(GNKana-Kiniro_SansSerif_L.ttf);
  45 +}
  46 +@font-face {
  47 + font-family: 'gnkana_kiniro_sansserif_st';
  48 + src: url(GNKana-Kiniro_SansSerif_ST.ttf);
  49 +}
  50 +@font-face {
  51 + font-family: 'gnkana_kon_iro_nightfall';
  52 + src: url(GNKana-Kon-iro_Nightfall.ttf);
  53 +}
  54 +@font-face {
  55 + font-family: 'ms_gothic';
  56 + src: url(MS-Gothic.ttf);
  57 +}
  58 +@font-face {
  59 + font-family: 'msmincho';
  60 + src: url(MSMINCHO.TTF);
  61 +}
  62 +@font-face {
  63 + font-family: 'ufonts_com_ms_pgothic';
  64 + src: url(ufonts.com_ms-pgothic.ttf);
21 65 }
app/scripts/controllers/tshirtdesign.js
... ... @@ -144,8 +144,10 @@
144 144 $scope.typeObject = object.type;
145 145 switch ($scope.typeObject) {
146 146 case 'i-text' :
147   - $('#input-design-text').focus();
148 147 $rootScope.isShowLeftPanel = 'text';
  148 + $('#input-design-text').focus(function() {
  149 +
  150 + });
149 151 break;
150 152  
151 153 case 'path-group' :
... ... @@ -183,6 +185,72 @@
183 185 '#0badff','#006cff','#839aff','#0410a0','#ffb2ff','#f93fff','#6600ca','#ff6699','#999999','#666666',
184 186 '#333333'
185 187 ];
  188 + //Font
  189 + $scope.listFontFamily = [
  190 + {
  191 + name : 'GN Aki iro Sesami Cookies',
  192 + slug : 'gn_aki_iro_sesami_cookies',
  193 + },
  194 + {
  195 + name : 'GN-Fuyu-iro_Script_Bold',
  196 + slug : 'gn_fuyu_iro_script_bold'
  197 + },
  198 + {
  199 + name : 'GN Killgothic U Kanana',
  200 + slug : 'gn_killgothic_u_kanana'
  201 + },
  202 + {
  203 + name : 'GN-Kin-iro_Alphabet_Cookies',
  204 + slug : 'gn_kin_iro_alphabet_cookies'
  205 +
  206 + },
  207 + {
  208 + name : 'GN-Kin-iro_SansSerif',
  209 + slug : 'gn_kin_iro_sansserif'
  210 +
  211 + },
  212 + {
  213 + name : 'GN-Koharuiro_Sunray',
  214 + slug : 'gn_koharuiro_sunray'
  215 +
  216 + },
  217 + {
  218 + name : 'GN-Kyu-pin',
  219 + slug : 'gn_kyu_pin'
  220 + },
  221 + {
  222 + name : 'gn_natsu_iro_schedule',
  223 + slug : 'gn_natsu_iro_schedule'
  224 +
  225 + },
  226 + {
  227 + name : 'gnkana_kiniro_sansserif_l',
  228 + slug : 'gnkana_kiniro_sansserif_l'
  229 +
  230 + },
  231 + {
  232 + name : 'gnkana_kiniro_sansserif_st',
  233 + slug : 'gnkana_kiniro_sansserif_st'
  234 + },
  235 + {
  236 + name : 'gnkana_kon_iro_nightfall',
  237 + slug : 'gnkana_kon_iro_nightfall'
  238 +
  239 + },
  240 + {
  241 + name : 'ms_gothic',
  242 + slug : 'ms_gothic'
  243 +
  244 + },
  245 + {
  246 + name : 'msmincho',
  247 + slug : 'msmincho'
  248 + },
  249 + {
  250 + name : 'ufonts_com_ms_pgothic',
  251 + slug : 'ufonts_com_ms_pgothic'
  252 + }
  253 + ];
186 254  
187 255 $scope.changeColorPattern = function(color){
188 256 if (canvas.getActiveObject()){
189 257  
190 258  
... ... @@ -211,27 +279,9 @@
211 279 }
212 280 canvas.renderAll();
213 281 }
214   - }
  282 + };
215 283  
216   - $scope.listFontFamily = [
217   - {
218   - name : 'GN-Aki-iro_Sesami_Cookies',
219   - slug : 'gn_aki_iro_sesami_cookies',
220   - },
221   - {
222   - name : 'Tahoma',
223   - slug : 'tahoma',
224   - },
225   - {
226   - name : 'GN-Fuyu-iro_Script_Bold',
227   - slug : 'gn_fuyu_iro_script_bold'
228   - },
229   - {
230   - name : 'GN Killgothic U Kanana',
231   - slug : 'gn_killgothic_u_kanana'
232 284  
233   - }
234   - ];
235 285  
236 286 $scope.focusInputText = function() {
237 287 if($scope.typeObject != 'i-text')
238 288  
239 289  
240 290  
241 291  
... ... @@ -260,18 +310,30 @@
260 310 if(canvas.getActiveObject()) {
261 311 var currentObject = canvas.getActiveObject();
262 312 if(currentObject.type == 'i-text') {
263   - console.log(font);
264   -
265 313 currentObject.set('fontFamily', font);
266   - currentObject.selectWord();
267   -
268 314 canvas.renderAll();
269   - // currentObject.getActiveObject();
270 315 canvas.setActiveObject(currentObject);
271 316 }
272 317  
273 318 }
  319 + };
  320 + //Set letter spacing text
  321 + var spacingNum = 0;
  322 + $scope.setLetterSpacingText = function(e) {
  323 + if(canvas.getActiveObject()) {
  324 + var currentObject = canvas.getActiveObject();
  325 + if(currentObject.type == 'i-text') {
  326 + if(e == 'plus')
  327 + spacingNum = spacingNum + 30;
  328 + else if (spacingNum>=30){
  329 + spacingNum = spacingNum - 30;
  330 + }
  331 + currentObject.set('charSpacing', spacingNum);
  332 + canvas.renderAll();
  333 + canvas.setActiveObject(currentObject);
  334 + }
274 335  
  336 + }
275 337 }
276 338 });
277 339 });
... ... @@ -5,7 +5,17 @@
5 5 font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
6 6 /*font-family: 'gn_aki_iro_sesami_cookies';*/
7 7 }
8   -
  8 +/*Scroll bar style*/
  9 +::-webkit-scrollbar {
  10 + -webkit-appearance: none;
  11 + width: 7px;
  12 +}
  13 +::-webkit-scrollbar-thumb {
  14 + border-radius: 4px;
  15 + background-color: rgba(0,0,0,.5);
  16 + -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5);
  17 +}
  18 +/*End scroll bar style*/
9 19 .padding-right-0{
10 20 padding-right: 0!important;
11 21 }
12 22  
... ... @@ -435,7 +445,100 @@
435 445 .aside .box-design-option li .content .des{
436 446 padding: 3px 10px 3px 0;
437 447 }
  448 +.aside .box-design-option li .content .color-patterns {
  449 + width: 100%;
  450 + border: #bbb solid 1px;
  451 + background: #FFF;
  452 + margin-top: 5px;
  453 +}
438 454  
  455 +.aside .box-design-option li .content .color-patterns .color-pattern-item{
  456 + height: 20px;
  457 + float: left;
  458 + margin-left: 4px;
  459 + margin-top: 2px;
  460 + width: 20px;
  461 + cursor: pointer;
  462 + border: 1px solid #ddd;
  463 +}
  464 +
  465 +.aside .box-design-option li .content .color-patterns .color-pattern-item:hover {
  466 + outline: 1px solid #ed1d24;
  467 +}
  468 +.aside .box-design-option li .content .layer-item {
  469 + text-align: center;
  470 + border: 1px #ddd solid;
  471 + background: #FFF;
  472 + padding: 5px;
  473 + font-size: 12px;
  474 + cursor: pointer;
  475 +}
  476 +
  477 +.aside .box-design-option li .content .layer-item:hover {
  478 + background: #ffcccc;
  479 +}
  480 +
  481 +
  482 +/*Design Text*/
  483 +.aside #choice-text{
  484 +
  485 +}
  486 +.aside #choice-text .content{
  487 + padding: 10px 10px;
  488 +}
  489 +.aside #choice-text .content ul.font-family-box{
  490 + list-style: none;
  491 + margin: 10px 0;
  492 + padding-left: 0;
  493 + height: 180px;
  494 + width: 100%;
  495 + overflow-y: scroll;
  496 + border: 1px solid #c0c0c0;
  497 +}
  498 +
  499 +.aside #choice-text .content .font-family-box li{
  500 + cursor: pointer;
  501 + padding: 4px 8px;
  502 + border: 0;
  503 + border-bottom: 1px solid #c0c0c0;
  504 + border-right: 1px solid #c0c0c0;
  505 + font-size: 16px;
  506 +}
  507 +.aside #choice-text .content .spacing-letter{
  508 +
  509 +}
  510 +.aside #choice-text .content .spacing-letter .text-label{
  511 + font-size: 16px;
  512 + padding: 4px 0;
  513 +}
  514 +.aside #choice-text .content .spacing-letter .box{
  515 + border: 1px solid #8c8c8c;
  516 + box-shadow: 0 0 5px #888888;
  517 + background-color: #f0f0f0;
  518 +}
  519 +.aside #choice-text .content .spacing-letter .item{
  520 + float: left;
  521 +}
  522 +
  523 +.aside #choice-text .content .spacing-letter .item i.fa{
  524 + font-size: 22px;
  525 + margin: 0 0;
  526 + color: #000000;
  527 +}
  528 +.aside #choice-text .content .spacing-letter .item-text{
  529 + padding: 6px 20px;
  530 + font-size: 12px;
  531 +}
  532 +.aside #choice-text .content .spacing-letter .item-plus{
  533 + border-right: 1px solid #8c8c8c;
  534 +}
  535 +.aside #choice-text .content .spacing-letter .item-minus{
  536 + border-left: 1px solid #8c8c8c;
  537 +}
  538 +.aside #choice-text .content .spacing-letter .item-plus, .aside #choice-text .content .spacing-letter .item-minus {
  539 + padding: 5px 6px 1px 6px;
  540 + cursor: pointer;
  541 +}
439 542 /*Design Choice Illustration*/
440 543 .aside #choice-illustration li .content {
441 544 padding: 10px 10px;
442 545  
... ... @@ -492,39 +595,7 @@
492 595 background: #999999;
493 596 }
494 597  
495   -.aside #choice-illustration li .content .color-patterns {
496   - width: 100%;
497   - border: #bbb solid 1px;
498   - background: #FFF;
499   - margin-top: 5px;
500   -}
501 598  
502   -.aside #choice-illustration li .content .color-patterns .color-pattern-item{
503   - height: 20px;
504   - float: left;
505   - margin-left: 4px;
506   - margin-top: 2px;
507   - width: 20px;
508   - cursor: pointer;
509   - border: 1px solid #ddd;
510   -}
511   -
512   -.aside #choice-illustration li .content .color-patterns .color-pattern-item:hover {
513   - outline: 1px solid #ed1d24;
514   -}
515   -
516   -.aside #choice-illustration li .content .layer-item {
517   - text-align: center;
518   - border: 1px #ddd solid;
519   - background: #FFF;
520   - padding: 5px;
521   - font-size: 12px;
522   - cursor: pointer;
523   -}
524   -
525   -.aside #choice-illustration li .content .layer-item:hover {
526   - background: #ffcccc;
527   -}
528 599  
529 600 /*Design content*/
530 601 .tshirt-design-container{
app/views/design_part/text.html
1 1 <li>
2 2 <div class="title">
3   - <i class="fa fa-chevron-circle-right" aria-hidden="true"></i>
4   - Text
  3 + <!--<i class="fa fa-chevron-circle-right" aria-hidden="true"></i>-->
  4 + 文字入力
5 5 </div>
6 6 <div class="content clearfix">
7 7 <div>
8   - <input type="text" class="form-control" id="input-design-text" ng-focus="focusInputText()" ng-change="inputText(design_text)" ng-model="design_text">
  8 + <input type="text" class="form-control" placeholder="ここに入力してください。" id="input-design-text" ng-focus="focusInputText()" ng-change="inputText(design_text)" ng-model="design_text">
9 9 </div>
10 10 <div>
11   - <ul>
  11 + <ul class="font-family-box">
12 12 <li ng-repeat="item in listFontFamily" ng-click="setFontFamily(item.slug)" ng-style="{'font-family' : item.slug}">{{ item.name }}</li>
13 13 </ul>
14 14 </div>
15 15 <div>
16   - <div></div>
  16 + <div>文字を変形する</div>
17 17 </div>
18   - <div>
19   - <label>Letter Spacing</label>
20   - <div class="group">
21   - <i class="fa fa-minus-square" aria-hidden="true"></i> Letter Spacing <i class="fa fa-plus-square" aria-hidden="true"></i>
  18 + <div class="clearfix spacing-letter ">
  19 + <div class="pull-left text-label">
  20 + 文字間隔 :
22 21 </div>
  22 + <div class="pull-right">
  23 + <div class="box clearfix">
  24 + <div class="item item-plus" ng-click="setLetterSpacingText('plus')">
  25 + <i class="fa fa-plus-square-o" aria-hidden="true"></i>
  26 + </div>
  27 + <div class="item item-text">
  28 + リセット
  29 + </div>
  30 + <div class="item item-minus" ng-click="setLetterSpacingText('minus')">
  31 + <i class="fa fa-minus-square-o" aria-hidden="true"></i>
  32 + </div>
  33 + </div>
  34 + </div>
  35 + </div>
  36 + </div>
  37 +</li>
  38 +<li>
  39 + <div class="title">
  40 + <!--<i class="fa fa-chevron-circle-right" aria-hidden="true"></i>-->
  41 + カラー変更
  42 + <!--<div class="pull-right">元の色に戻す</div>-->
  43 + </div>
  44 + <div class="content clearfix">
  45 + <div class="color-patterns">
  46 + <div class="color-pattern-item" ng-repeat="color in listColorPatterns track by $index" ng-click="changeColorPattern(color)" ng-style="{'background-color': color}">
  47 + </div>
  48 + <div class="clearfix"></div>
  49 + </div>
  50 + </div>
  51 +</li>
  52 +
  53 +<li>
  54 + <div class="title">
  55 + <!--<i class="fa fa-chevron-circle-right" aria-hidden="true"></i>-->
  56 + 重ね順変更
  57 + </div>
  58 + <div class="content clearfix">
  59 + <div class="col-xs-3 layer-item" ng-click="layerProcess(1)">
  60 + <img src="images/layer-icon-1.png"/>
  61 + <div>前面へ</div>
  62 + </div>
  63 + <div class="col-xs-3 layer-item" ng-click="layerProcess(2)">
  64 + <img src="images/layer-icon-2.png"/>
  65 + <div>背面へ</div>
  66 + </div>
  67 + <div class="col-xs-3 layer-item" ng-click="layerProcess(3)">
  68 + <img src="images/layer-icon-3.png"/>
  69 + <div>最前面へ</div>
  70 + </div>
  71 + <div class="col-xs-3 layer-item" ng-click="layerProcess(4)">
  72 + <img src="images/layer-icon-4.png"/>
  73 + <div>最前面へ</div>
23 74 </div>
24 75 </div>
25 76 </li>