Git Product home page Git Product logo

redmine-theme-minimalflat2's Introduction

minimalflat2

Redmine

Minimal and flat design theme for Redmine.

Screenshot

Projects Editor
Projects Editor
Issue Settings
Issue Settings
Mobile Menu
For mobile Menu

Features

  • Minimal and flat design
  • Modern color scheme by Flat UI & Espresso
  • Flexible (resolution-independent) icon by IcoMoon
  • Expandable tree view of the project list
  • Favicon (Redmine 2.5 or later)
  • Responsive layout (Redmine 3.2 or later)

Installation

  1. Download zip file from release page
  2. Extract zip file, and move to public/themes/minimalflat at Redmine directory
  3. Open Redmine page, and go to Administration > Settings > Display
  4. Enable the minimalflat2 from Theme, and save settings

Development

Setup the development environment.

$ git clone https://github.com/akabekobeko/redmine-theme-minimalflat2.git redmine-theme-minimalflat2
$ cd redmine-theme-minimalflat2
$ cd npm i

Build CSS

npm build command transpile the SCSS file and output the CSS file.

$ npm run build

Start SCSS file monitoring with the npm watch command. It will automatically Transpile when it detects a change.

$ npm watch

Stop is Ctrl + C .

docker compose

  1. docker compose up -d
  2. Access to http://localhost:8080/ on web browser
  3. Sign in to Redmine as an administrator
  4. Select mytheme as the theme from the administration screen.

Stop is docker compose stop.

Libraries

Library Author License
IcoMoon - Free Keyamoon GPL/CC BY 4.0
Entypo Daniel Bruce CC BY-SA 4.0
bymathias/normalize.styl Mathias Brouilly MIT

Support policy

This theme supports only to the latest version of Redmine. For Redmine, the composition of HTML and CSS is big changed for each minor version. Therefore it is difficult to support to multiple versions at the same time.

Please use the old version when you need past Redmine support.

ChangeLog

License

redmine-theme-minimalflat2's People

Contributors

akabekobeko avatar themagician1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redmine-theme-minimalflat2's Issues

favicon を追加する

Redmine 2.5 からテーマで favicon を設定可能なので対応する。

favicon ディレクトリに favicon.ico を配置すればよいらしい。2015/8/30 時点の favicon は favicon.ico 以外にも iOS や Android 向けの多種多様な形式やサイズを用意するものだが、Redmine として link タグに設定されるものは favicon.ico だけのようなので、この形式でなるべく大きな画像を格納するようにする。

図案はヘッダーにも用いているロケットにする予定。

テーマ CSS を作成する

標準テーマの application.css を元に、テーマ CSS を作成する。主な作業は以下。

  • Stylus 化
  • 画像参照のアイコン フォント置換
  • サイズを px から em/rem 系に変更
  • 配色を変更
  • ...etc

v1.0.1 をリリースする

minimalflat2 v1.0.1 をリリースする。

  • README のバージョン情報を更新
  • リポジトリの master に develop を merge
  • master に v1.0.1 タグを追加
  • npm run release でリリース用イメージ ZIP を生成
  • プロジェクトの releases v1.0.1 に ZIP を公開

プロジェクトを作成する

リリース用イメージ生成や Stylus による CSS 実装とコンパイルをおこないたいので、Node モジュールのプロジェクト設定と gulp 関連の実装をおこなう。

リポジトリ一覧の td が**寄せになる

tabel.list td に text-align:center が設定されているため、明示的に打ち消さないと**寄せされる。デフォルトを left と center のどちらにするかも踏まえて修正すること。

アイコン フォントを作成する

Redmine 標準テーマが参照する images 内の画像と一致するアイコン フォントを作成する。サービスとして IcoMoon を利用予定。

チケット一覧のコンテキストメニューでチェック マークが多重表示される

#context-menu a.icon-checked に設定された background が原因。これは context_menu.css に定義され、application.css より後で読み込まれるようだ。

よって詳細度を高めたセレクターを定義するか、タグへ直に style を指定する必要あり。background を none にして margin-left に -1em を指定すればレイアウトも標準に近くなる ( Firefox の開発者ツールでテスト済み )。

リリース用 ZIP をディレクトリ込みで圧縮する

現在のリリース用 ZIP は dist 内を平で圧縮しているらしく、unzip コマンドを -d オプションなしに実行するとルートの構成物がそのまま展開されてしまう。

これは不便なので minimalflat2 というディレクトリ込みで圧縮されるようにする。

Stylus 構成を整理する

Stylus の import で対象が変数や MixIn だけの場合は問題ないが、CSS 化される定義を持つものはそのまま import した場所に展開されてしまう。

例えば IconFont.styl は font-face 定義を持つため、これを import している部分すべてに定義が展開される。これを防ぐため、Stylus 構成を見直す。

CHANGELOG.md を作成する

プロジェクトの更新履歴をリストにした CHANGELOG.md を作成する。

README に更新履歴を記載するかわりに、このファイルへのリンクを提供する。

Style has not been applied to the link of the close the ticket

Compiled CSS is as follows.

a .issue.closed,
a .issue.closed:link,
a .issue.closed:visited {
  color: #95a5a6;
  text-decoration: line-through;
}

Expected value

a.issue.closed,
a.issue.closed:link,
a.issue.closed:visited {
  color: #95a5a6;
  text-decoration: line-through;
}

プロジェクト設定のタブを移動させた時、左端枠線が表示されない

プロジェクト設定などで表示されるタブは、表示幅が狭くなると左右に移動するためのボタンが表示される。これで移動させたとき、左端に表示されたタブの左枠線が表示されない。

たとえば A B C D というタブがあったとき、右に移動させて B C D E となった場合、B のタブ左の枠線がない。

ボタンのデザインを変更する

現行の枠線で囲むデザインだと押せることが分かりにくいので、ベタ塗りに変更する。ついでに padding も広げてゆとりを持たせる。

プロジェクト一覧をツリー UI 化する

Redmine のプロジェクト一覧は階層が増えると非常に見辛い。よって階層ごとに折りたたみ可能な UI とする。

実現方法としては theme.js で一覧の DOM を解析し、要素を display:none にする。ルートとクリックにより展開された階層だけ none を block にすればよい。

テスト用 HTML を作成する

Redmine の各種ページを模した HTML を作成する。

これは Redmine を起動せずにデザイン確認するためのもの。また、標準テーマと自作テーマの CSS を同一 HTML で読み分けることで定義の抜けもチェックしやすくなるはず。

v1.0 をリリースする

minimalflat2 v1.0 をリリースする。

  • README のバージョン情報を更新
  • リポジトリの master に develop を merge
  • master に v1.0 タグを追加
  • npm run release でリリース用イメージ ZIP を生成
  • 本 Github プロジェクトの releases v1.0 に ZIP を公開

calendar.png をアイコン フォントで置き換える

チケット編集画面などに表示される、calendar.png をアイコン フォントに置き換える。

これは theme.js 以降で動的に追加される画像らしく、通常の方法では置き換えられない。対応するとしたら body タグ終端あたりに script タグを追加し、そこで ready イベントを処理することになるだろうか。

置き換える場合、img タグの click イベントを維持する必要あり。これはイベント ハンドラとなるコールバック関数を代替要素に引き継ぐことで対応できそう。

これでも無理な場合は諦める。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.