Angularã§Bootstrapを使ã†ãƒ©ã‚¤ãƒ–ラリã¨ã—ã¦ã€ä»¥å‰ã®è¨˜äº‹ã§ã¯ã€UI Bootstrapを紹介ã—ã¾ã—ãŸã€‚
最近ã€AngularStrapも使ã£ã¦ã¿ãŸã®ã§æ„Ÿæƒ³ã‚’書ã„ã¦ãŠãã¾ã™ã€‚
AngularStrapã¯åˆæœŸã®é ƒã«åå‰ã‚’èžã„ãŸã“ã¨ãŒã‚るよã†ãªæ°—ãŒã—ã¾ã™ã€‚確ã‹ã€bootstrap v2ã®æ™‚代ã«ã€‚今ã§ã¯ã€AngularStrapã‚‚v2ã«ãªã£ã¦jQueryä¾å˜ãŒãªããªã‚Šã¾ã—ãŸã€‚ã„ã„æ™‚ä»£ã®æµã‚Œã§ã™ã€‚
ã•ã¦ã€AngularStrapã¯UI Bootstrapã¨æ¯”ã¹ã‚‹ã¨æ ¹æœ¬çš„ãªè¨è¨ˆæ€æƒ³ã¯ä¼¼ã¦ã„ã¾ã™ã€‚ã©ã¡ã‚‰ã‚‚ã€bootstrapã®cssã ã‘å†åˆ©ç”¨ã—ã¦ã€javascript部分ã¯ä½œã‚Šç›´ã—ã€jQueryã«ã¯ä¾å˜ã—ãªã„ã€Look&Feelã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºæ€§ã‚’考慮ã—ã¦ã„ã‚‹ã€ã¨è¨€ã£ãŸã¨ã“ã‚ã§ã™ã€‚
ã—ã‹ã—ã€ä½¿ã£ã¦ã¿ã‚‹ã¨ã ã„ã¶è€ƒãˆæ–¹ã«é•ã„ãŒã‚るよã†ãªæ°—ãŒã—ã¾ã™ã€‚
UI Bootstrapã¯ã§ãã‚‹ã ã‘シンプルã«bootstrapã®cssを使ãˆã‚‹ã‚ˆã†ã«ã—ã¦ã„る一方ã€AngularStrapã¯bootstrapã®cssをベースã«ã—ã¦ã‚ˆã‚Šãƒªãƒƒãƒãªæ©Ÿèƒ½ã‚’æä¾›ã—よã†ã¨ã—ã¦ã„るよã†ã§ã™ã€‚最大ã®é•ã„ã¯ã€ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã®ã‚µãƒãƒ¼ãƒˆã§ã—ょã†ã‹ã€‚
ç°¡å˜ãªä¾‹ã¨ã—ã¦ã€Alertã®é•ã„を見ã¦ã¿ã¾ã™ã€‚最åˆã¯ã€UI Bootstrap。
<alert type="{{alert.type}}" close="closeAlert(alert)">{{alert.content}}</alert>
ã“れã ã‘ã§ã™ã€‚ng-repeatを使ã†ä¾‹ãŒãƒ‰ã‚ュメントã«è¼‰ã£ã¦ã„ã¾ã™ãŒã€ç›´æ„Ÿçš„ã§ã™ã€‚ng-showã¨ã‚‚組ã¿åˆã‚ã›ã‚‰ã‚Œã¾ã™ã€‚
次ã«ã€AngularStrapã§ã™ã€‚ã„ã‚ã„ã‚ã‚るよã†ã§ã™ãŒã€attributeを使ã†ä¾‹ã€‚
<button class="btn" title="{{alert.title}}" data-content="{{alert.content}}" data-type="{{alert.type}}" bs-alert>Show alert</button>
buttonã§ã¯ãªãdivã§ç›´æŽ¥è¡¨ç¤ºã—よã†ã¨æ€ã„ã¾ã—ãŸãŒã€ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ドã‚ュメントã§ã¯ã§ããã†ãªã®ã§ã€ä½•ã‹é–“é•ãˆã¦ã„ã‚‹ã®ã‹ã‚‚ã—れã¾ã›ã‚“。
ng-showã¯ä½¿ã‚ãšã€ã‚ªãƒ—ションã‹å±žæ€§ã§showフラグを指定ã—ã¾ã™ã€‚ã“ã®ã‚ãŸã‚Šæ€æƒ³ãŒç•°ãªã‚‹æ„Ÿã˜ã§ã™ã€‚durationã¨ã‹æŒ‡å®šã§ãã‚‹ã®ã¯ä¾¿åˆ©ã§ã™ã€‚
alertã¯å˜ç´”ãªæ©Ÿèƒ½ãªã®ã§ã€ãã“ã¾ã§é•ã„ã¾ã›ã‚“ãŒã€ä»–ã®æ©Ÿèƒ½ã¯ã‚‚ã£ã¨é•ã„ãŒã‚りãã†ã§ã™ã€‚
個人的ã«ã¯ã€ui-bootstrapã®æ–¹ãŒä½¿ã„ã‚„ã™ã„ã§ã™ã€‚ã—ã‹ã—ã€AngularStrapã§ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãŒç°¡å˜ã«ä½¿ãˆã‚‹ã®ã‚‚é…力的ã§ã™ã€‚使ã„分ã‘ã‚‹ã“ã¨ã«ã—ã¾ã™ã€‚
人ã«å‹§ã‚ã‚‹ã®ã¯ã©ã¡ã‚‰ãŒã‚ˆã„ã‹è¿·ã„ã¾ã™ã€‚勉強ãŒç›®çš„ãªã‚‰ui-bootstrapã§ã—ょã†ã‹ã€ãƒªãƒƒãƒãªæ©Ÿèƒ½ãŒæ¬²ã—ã„ãªã‚‰AngularStrapã§ã—ょã†ã‹ã€‚
AngularJSã®æµã‚Œã«ã¡ã‚ƒã‚“ã¨ã¤ã„ã¦ã„ããŸã‚ng-europeã‚’youtubeã§è¦‹ã‚ˆã†ã¨æ€ã„å§‹ã‚ã¦ä¸€ãƒ¶æœˆãŒéŽãŽã¦ã—ã¾ã„ã¾ã—ãŸã€‚
ã¾ã 全部ã¯è¦‹ã¦ã„ã¾ã›ã‚“ãŒã€ä»Šæ—¥ã¯ä¸€æœ¬è¦‹ã¾ã—ãŸã€‚興味深ã‹ã£ãŸã®ã§è¨˜äº‹ã«ã—ã¾ã™ã€‚
https://www.youtube.com/watch?v=tfVA1syv-3o
AngularUIã®ui-bootstrapã®ãŠè©±ã§ã™ã€‚
å˜ã«ãƒ©ãƒƒãƒ—ã™ã‚‹ã‚ã‘ã§ã¯ãªãAngularæµã«ä½œã‚‰ã‚Œã¦ã„ã‚‹ã®ã¨ã€ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºæ€§ã‚’é‡è¦–ã—ã¦ã„ã‚‹ã‚ãŸã‚Šã¯å‚考ã«ãªã‚Šã¾ã™ã€‚
ui-bootstrapã¯Bootstrap 3ã®cssã®ã¿ã‚’利用ã—ã¦ã„ã¦javascriptã®éƒ¨åˆ†ã¯å…¨éƒ¨æ›¸ãç›´ã—ã¦ã„るよã†ã§ã™ã€‚ã¤ã¾ã‚Šã€jQueryä¾å˜ã‚‚ãªã—ã§ã™ã€‚
ã¡ã‚‡ã£ã¨æ˜”話を。当åˆã€Bootstrap 2を使ã£ã¦ã„ãŸã®ã§ã™ãŒã€ã‚¯ãƒ©ã‚¹åãªã©ãŒã©ã†ã‚‚好ãã«ãªã‚Œãšã€ãã®å¾Œinkã¨ã„ã†cssフレームワークを見ã¤ã‘㦠ã€ã—ã°ã‚‰ã使ã£ã¦ã„ã¾ã—ãŸã€‚
ãã®æ™‚ã‹ã‚‰ã€inkã®cssã®ã¿ã‚’使ã£ã¦ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã—ã¦ã„ã¾ã—ãŸã€‚ãƒã‚¸ãƒƒã‚¯ãŒå¿…è¦ãªå ´åˆã¯Angularå´ã§è‡ªå‰ã§ä½œã£ã¦ã¾ã—ãŸã€‚
例ãˆã°ã€ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚‚当åˆã¯AngularUIã®ui-calendarを使ã£ã¦ã„ã¾ã—ãŸãŒã€
jQueryä¾å˜ã«æŠµæŠ—ãŒã‚ã£ãŸãŸã‚ã€ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚‚å˜ç´”ãªæ©Ÿèƒ½ãªã‚‰inkã§è‡ªå‰ã§å®Ÿè£…ã—ã¦ã„ã¾ã—ãŸã€‚
ãã®å¾Œã€Bootstrap 3ãŒç™»å ´ã—ã€ã‚¯ãƒ©ã‚¹åãŒinkã®ã‚ˆã†ã«ã‚·ãƒ³ãƒ—ルã«ãªã£ãŸã®ã§ã€å°‘ã—æ°—ã«å…¥ã£ã¦Bootstrap 3を使ã„å§‹ã‚ã¾ã—ãŸã€‚ã§ã‚‚ã€cssã ã‘ã§ã€jsã¯ä½¿ã„ã¾ã›ã‚“。例ãˆã°ã€alertã‚‚ãƒã‚¸ãƒƒã‚¯ã¯angularã§è‡ªå‰ã§æ›¸ã„ã¦ã„ã¾ã—ãŸã€‚ã¨è¨€ã£ã¦ã‚‚ã€ã‚ã¾ã‚Šã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°é‡ã¯å¤šããªãã€ç‰¹ã«å›°ã£ã¦ã„ã¾ã›ã‚“。
ã•ã¦ã€è©±ã‚’戻ã—ã¾ã™ã¨ã€ui-bootstrapã¯ä¸Šè¨˜ã§ã‚„ã£ã¦ã„ãŸã‚ˆã†ãªã“ã¨ã‚’ã¡ã‚ƒã‚“ã¨ã‚„ã£ã¦ã„るよã†ãªå°è±¡ã§ã™ã€‚cssã ã‘を使ã£ã¦ã€ãƒã‚¸ãƒƒã‚¯ã¯angular用ã«directiveã‚’è¨è¨ˆã—ã¦ã‚るよã†ã§ã™ã€‚
alertを見るé™ã‚Šã§ã¯å˜ç´”ãªã®ã§è‡ªå‰ã§ç”¨æ„ã—ã¦ã‚‚変ã‚りã¾ã›ã‚“ãŒã€ä»–ã®è¤‡é›‘ãªæ©Ÿèƒ½ã¯ui-bootstrapã®directiveを使ã†ã¨ã ã„ã¶æ¥½ã§ããã†ã§ã™ã€‚
ã¨ã„ã†ã‚ã‘ã§ã€jQueryéžä¾å˜ã®ui-bootstrapã¯ãŠã™ã™ã‚ã§ã™ã€‚
Bootstrapã‚‚ã„ã„ã®ã§ã™ãŒã€ã¡ã‚‡ã£ã¨å·¨å¤§ã™ãŽã‚‹ã®ã§ã€ä»£æ›¿å“ãŒãªã„ã‹ãªã¨æ€ã£ã¦æŽ¢ã—ã¾ã—ãŸã€‚
è¦ä»¶ã¯ã€
- スマホã§ã‚‚使ãˆã‚‹ã‚ˆã†ã«ãƒ¬ã‚¹ãƒãƒ³ã‚·ãƒ–対応
- ã‚ã¾ã‚Šã§ãã‚‹ã“ã¨ã¯å¤šããªãã¦ã‚ˆã„ã€ãƒœã‚¿ãƒ³ã¨ã‹ãƒ•ォームã¨ã‹ã®è¦‹ãŸç›®ãŒãれã„ã«ãªã‚Œã°ã‚ˆã„
- ã§ãれã°ã€CSSã ã‘ã§JavaScriptä¸è¦ã®ãƒ•レームワークãŒã‚ˆã„
ã¨ã„ã£ãŸã¨ã“ã‚ã§ã™ã€‚
色々探ã—ã¾ã—ãŸãŒã€æœ‰åã©ã“ã‚ã§JavaScriptä¸è¦ã¨è¨€ã†è¦ä»¶ã‚’満ãŸã™ã‚‚ã®ã¯ã‚ã¾ã‚Šãªãã€çµå±€è¦‹ã¤ã‘ãŸã®ãŒã“れã§ã™ã€‚
レスãƒãƒ³ã‚·ãƒ–対応ã®ã‚µã‚¤ãƒˆã‚’サクッã¨ä½œã‚Œã‚‹ãƒ•レームワーク『InKã€
http://ink.sapo.pt/
ã“ã®ã€ŒInKã€ã¨ã„ã†ãƒãƒ¼ãƒŸãƒ³ã‚°ã§ã™ãŒã€ä½•ãŒå›°ã‚‹ã£ã¦ã€æ¤œç´¢ã‚ーワードã¨ã—ã¦ä½¿ãˆãªã„ã“ã¨ã§ã™ã€‚Google検索ã™ã‚‹ã¨ã€"do you mean link?"ã¨ã‹ãªã£ã¦ã—ã¾ã†ã€‚ãã‚“ãªã‚ã‘ã§ã€ä½¿ç”¨æ„Ÿãªã©ã®ãƒ¬ãƒãƒ¼ãƒˆãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã§ã™ã€‚ã©ã‚Œã ã‘æœ‰åãªã®ã‹ã‚‚よã分ã‹ã‚Šã¾ã›ã‚“。
ã¾ãŸã€æ—¥æœ¬ã ã¨ã€
http://d.hatena.ne.jp/keyword/InK
ã¨æ··åŒã—ãã†ã§ã™ã€‚
ã•ã¦ã€è©±ã‚’戻ã™ã¨ã€Inkã¯è¦ä»¶ã‚’満ãŸã—ã¦ã„ã¾ã™ã€‚全体的ãªè¨è¨ˆãŒã‚·ãƒ³ãƒ—ルã§ã€CSSã ã‘ã§æ§‹æˆã•れã¦ã„ã¦ã„ã„æ„Ÿã˜ã§ã™ã€‚早速ã¡ã‚‡ã£ã¨ä½¿ã£ã¦ã¿ã¦æ„Ÿã˜ãŸã®ã¯ã€ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®æŒ‡å®šãŒé¢ç™½ã„ã¨ã„ã†ã“ã¨ã§ã™ã€‚Bootstrapã ã¨12 spanã§fixedã¨fluidãŒã‚りã¾ã™ãŒã€Inkã ã¨ãƒ‘ーセント指定ã§ã™ã€‚ã¾ãŸã€fixedã¯ãªãã¦fluidã ã‘ã®ã‚ˆã†ã§ã™ï¼ˆæœªç¢ºèªï¼‰ã€‚fixedも使ã„ãŸã„ケースãŒã‚ã‚‹ã®ã§ã€ãã‚Œã¯æ®‹å¿µãªã¨ã“ã‚ã§ã™ã€‚ã§ã€é¢ç™½ã„ã®ã¯ã€ã€ŒMultiple Layoutsã€ã¨ã„ã†ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®æŒ‡å®šæ–¹æ³•ã§ã™ã€‚ã“れã¯ã€CSSã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚¯ã‚¨ãƒªã‚’3通り用æ„ã—ã¦ã€ãれãžã‚Œã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’CSSã®ã‚¯ãƒ©ã‚¹æŒ‡å®šã§å®šç¾©ã™ã‚‹ã®ã§ã™ã€‚
ã†ã¾ã説明ã§ããªã„ã®ã§ã€ã‚µãƒ³ãƒ—ルを。
<div class="ink-l50 ink-m50 ink-s100">
エリア1
</div>
<div class="ink-l50 ink-m50 ink-s100">
エリア2
</div>
ã“ã®ã‚ˆã†ã«ã™ã‚‹ã¨ã€å¤§ç”»é¢ã¨ä¸ç”»é¢ã§ã¯ã€ã‚¨ãƒªã‚¢ï¼‘ã¨ã‚¨ãƒªã‚¢ï¼’ãŒæ¨ªã«ä¸¦ã‚“ã§ï¼’カラムã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã«ãªã‚Šã€ã‚¹ãƒžãƒ›ãªã©ã®å°ç”»é¢ã§ã¯ã€ã‚¨ãƒªã‚¢ï¼‘ã¨ã‚¨ãƒªã‚¢ï¼’ãŒç¸¦ã«ä¸¦ã‚“ã§ï¼‘カラムã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã«ãªã‚Šã¾ã™ã€‚ã¡ãªã¿ã«ã€å¤§ç”»é¢ã€ä¸ç”»é¢ã€å°ç”»é¢ãŒã€ãれãžã‚Œã€"l", "m", "s"ã«å¯¾å¿œã—ã¾ã™ã€‚
ã‚ã¨ã€Bootstrapã§å›°ã£ã¦ã„ãŸãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆæ™‚ã®ã‚¹ãƒšãƒ¼ã‚¹è¿½åŠ ã‚‚ã€Inkã§ã¯ink-vspace
ã¨ink-gutter
ã§è§£æ±ºã—ãã†ã§ã™ã€‚ã‚‚ã£ã¨ã‚‚ã€ç´°ã‹ã„制御をã™ã‚‹ã¨ãã¯çµå±€CSSを書ãã“ã¨ã«ãªã‚Šãã†ã§ã™ãŒã€‚
ã¨ã‚Šã‚ãˆãšã¯ã€ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã ã‘試ã—ã¦æº€è¶³ã—ã¾ã—ãŸã€‚