プロジェクト

全般

プロフィール

機能 #7 » line-redmine-jp-improved.html

Redmine Admin, 2025-05-10 20:29

 
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LINE Redmine日本語版 - 改善版</title>
<style>
:root {
/* LINEカラーパレット */
--line-primary: #06C755; /* LINEの特徴的なグリーン */
--line-secondary: #1E1E1E; /* ほぼ黒(テキスト用) */
--line-light-gray: #F7F8F9; /* 背景色 */
--line-mid-gray: #E6E6EB; /* 境界線・区切り線 */
--line-dark-gray: #8E8E93; /* セカンダリテキスト */
--line-white: #FFFFFF; /* 白背景 */
--line-panel-bg: #F0F2F5; /* パネル背景色 */
--line-link: #007AFF; /* リンク色 */
--line-error: #FF3B30; /* エラーメッセージ */
--line-warning: #FF9500; /* 警告 */
--line-success: #34C759; /* 成功メッセージ */
/* 角丸 */
--border-radius-small: 4px;
--border-radius-medium: 8px;
--border-radius-large: 12px;
/* 影 */
--shadow-small: 0 1px 3px rgba(0,0,0,0.1);
--shadow-medium: 0 4px 6px rgba(0,0,0,0.1);
--shadow-large: 0 10px 15px rgba(0,0,0,0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', Meiryo, 'MS Pゴシック', sans-serif;
background-color: var(--line-light-gray);
color: var(--line-secondary);
line-height: 1.7;
font-size: 16px; /* フォントサイズを大きく */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
#wrapper {
background-color: var(--line-white);
box-shadow: var(--shadow-small);
border-radius: var(--border-radius-medium);
max-width: 1280px;
margin: 20px auto;
overflow: hidden;
}
a {
color: var(--line-link);
text-decoration: none;
}
/* ヘッダー */
#header {
background-color: var(--line-primary);
padding: 16px 24px;
height: auto;
color: var(--line-white);
display: flex;
align-items: center;
justify-content: space-between;
}
#header-left {
display: flex;
align-items: center;
}
#header-logo {
font-size: 22px; /* フォントサイズを大きく */
font-weight: bold;
margin-right: 20px;
}
#header-right {
display: flex;
align-items: center;
}
#quick-search {
margin-right: 20px;
}
#quick-search input[type="text"] {
border-radius: var(--border-radius-small);
border: none;
padding: 10px 16px; /* パディングを大きく */
width: 220px;
font-size: 15px; /* フォントサイズを大きく */
}
#account a {
color: var(--line-white);
margin-left: 10px;
font-size: 15px; /* フォントサイズを大きく */
}
/* トップメニュー */
#top-menu {
background-color: var(--line-white);
border-bottom: 1px solid var(--line-mid-gray);
padding: 10px 16px;
font-size: 15px; /* フォントサイズを大きく */
}
#top-menu ul {
display: flex;
list-style: none;
}
#top-menu li {
margin-right: 20px;
}
#top-menu a {
color: var(--line-secondary);
font-weight: 500;
}
#top-menu a.selected {
color: var(--line-primary);
font-weight: 700;
}
/* メインメニュー */
#main-menu {
background-color: var(--line-white);
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
#main-menu ul {
display: flex;
list-style: none;
padding: 0 16px;
}
#main-menu li {
margin: 0;
}
#main-menu a {
color: var(--line-secondary);
padding: 12px 16px;
font-weight: 500;
display: block;
font-size: 15px; /* フォントサイズを大きく */
}
#main-menu a.selected {
color: var(--line-primary);
font-weight: 700;
border-bottom: 2px solid var(--line-primary);
}
/* メインコンテンツ */
#main {
display: flex;
padding: 20px;
background-color: var(--line-light-gray);
}
#sidebar {
width: 300px; /* 少し幅を広げる */
background-color: var(--line-panel-bg); /* パネル背景色 */
border-radius: var(--border-radius-medium);
box-shadow: var(--shadow-small);
padding: 20px;
margin-right: 20px;
}
#sidebar h3 {
color: var(--line-secondary);
font-size: 18px; /* フォントサイズを大きく */
border-bottom: 1px solid var(--line-mid-gray);
padding-bottom: 10px;
margin-bottom: 15px;
font-weight: 700;
}
/* プロジェクトタグスタイル */
.project-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 20px;
}
.project-tag {
background-color: var(--line-white);
color: var(--line-secondary);
border-radius: var(--border-radius-small);
padding: 8px 12px;
font-size: 14px;
font-weight: 500;
box-shadow: var(--shadow-small);
display: inline-block;
transition: all 0.2s ease;
}
.project-tag:hover {
background-color: rgba(6, 199, 85, 0.1);
color: var(--line-primary);
}
.project-tag.selected {
background-color: var(--line-primary);
color: var(--line-white);
}
/* 最近のチケットタグスタイル */
.recent-issues {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.issue-tag {
background-color: var(--line-white);
color: var(--line-secondary);
border-radius: var(--border-radius-small);
padding: 8px 12px;
font-size: 14px;
font-weight: 500;
box-shadow: var(--shadow-small);
display: inline-block;
transition: all 0.2s ease;
}
.issue-tag:hover {
background-color: rgba(6, 199, 85, 0.1);
transform: translateY(-2px);
box-shadow: var(--shadow-medium);
}
.issue-tag .issue-id {
color: var(--line-primary);
font-weight: 700;
margin-right: 4px;
}
#content {
flex: 1;
background-color: var(--line-panel-bg); /* パネル背景色 */
padding: 20px;
border-radius: var(--border-radius-medium);
box-shadow: var(--shadow-small);
}
/* 見出し */
h1, h2, h3, h4 {
font-weight: 700;
margin-bottom: 16px;
letter-spacing: -0.01em;
}
h1 {
font-size: 26px; /* フォントサイズを大きく */
color: var(--line-secondary);
}
h2 {
font-size: 22px; /* フォントサイズを大きく */
color: var(--line-secondary);
}
/* コンテキストメニュー */
.contextual {
float: right;
margin-top: 5px;
display: flex;
gap: 10px;
}
.contextual a {
font-size: 15px; /* フォントサイズを大きく */
}
.button {
background-color: var(--line-primary);
color: var(--line-white);
border: none;
border-radius: var(--border-radius-small);
padding: 10px 16px; /* パディングを大きく */
font-weight: 500;
cursor: pointer;
display: inline-block;
font-size: 15px; /* フォントサイズを大きく */
}
.button-outline {
background-color: var(--line-white);
color: var(--line-primary);
border: 1px solid var(--line-primary);
border-radius: var(--border-radius-small);
padding: 10px 16px; /* パディングを大きく */
font-weight: 500;
cursor: pointer;
display: inline-block;
font-size: 15px; /* フォントサイズを大きく */
}
/* チケット詳細 */
.issue-overview {
background-color: var(--line-white);
border-radius: var(--border-radius-medium);
padding: 20px;
box-shadow: var(--shadow-small);
margin-bottom: 20px;
}
.issue-title {
font-size: 22px; /* フォントサイズを大きく */
font-weight: 700;
margin-bottom: 16px;
display: flex;
align-items: center;
line-height: 1.4;
}
.issue-title .issue-id {
color: var(--line-dark-gray);
margin-right: 8px;
font-weight: normal;
}
/* メタ情報を横並びに */
.issue-meta {
display: flex;
flex-wrap: wrap;
gap: 16px;
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid var(--line-mid-gray);
}
.issue-meta-item {
display: flex;
align-items: center;
margin-bottom: 8px;
}
.issue-meta-label {
font-weight: 500;
color: var(--line-dark-gray);
margin-right: 8px;
font-size: 15px;
}
.issue-meta-value {
font-weight: 500;
font-size: 15px;
}
.issue-description {
background-color: var(--line-white);
border-radius: var(--border-radius-medium);
padding: 20px;
box-shadow: var(--shadow-small);
margin-bottom: 20px;
}
.description-title {
font-size: 18px; /* フォントサイズを大きく */
font-weight: 600;
margin-bottom: 12px;
padding-bottom: 8px;
border-bottom: 1px solid var(--line-mid-gray);
}
.description-content {
line-height: 1.7;
font-size: 16px; /* フォントサイズを大きく */
}
.description-content p {
margin-bottom: 12px;
}
.description-content ul {
margin-left: 20px;
margin-bottom: 12px;
}
.description-content li {
margin-bottom: 4px;
}
/* ステータスタグ */
.status-tag {
display: inline-block;
padding: 4px 10px;
border-radius: var(--border-radius-small);
font-size: 14px;
font-weight: 500;
}
.status-new, .status-新規 {
background-color: rgba(6, 199, 85, 0.1);
color: var(--line-primary);
}
.status-in-progress, .status-進行中 {
background-color: rgba(0, 122, 255, 0.1);
color: var(--line-link);
}
.status-resolved, .status-解決済み {
background-color: rgba(52, 199, 89, 0.1);
color: var(--line-success);
}
.status-feedback, .status-フィードバック {
background-color: rgba(255, 149, 0, 0.1);
color: var(--line-warning);
}
.status-closed, .status-終了 {
background-color: rgba(142, 142, 147, 0.1);
color: var(--line-dark-gray);
}
/* タブ */
.tabs {
display: flex;
margin-bottom: 20px;
border-bottom: 1px solid var(--line-mid-gray);
}
.tabs ul {
display: flex;
list-style: none;
}
.tabs li {
margin: 0;
}
.tabs a {
display: block;
padding: 12px 16px;
color: var(--line-dark-gray);
font-weight: 500;
text-decoration: none;
border-bottom: 2px solid transparent;
font-size: 15px; /* フォントサイズを大きく */
}
.tabs a.selected {
color: var(--line-primary);
border-bottom: 2px solid var(--line-primary);
}
/* コメント */
.comments {
margin-top: 30px;
}
.comment {
background-color: var(--line-white);
border-radius: var(--border-radius-medium);
padding: 16px;
box-shadow: var(--shadow-small);
margin-bottom: 20px;
}
.comment-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
padding-bottom: 8px;
border-bottom: 1px solid var(--line-mid-gray);
}
.comment-author {
font-weight: 500;
display: flex;
align-items: center;
font-size: 15px; /* フォントサイズを大きく */
}
.comment-author img {
width: 36px; /* アバターを大きく */
height: 36px;
border-radius: 50%;
margin-right: 8px;
}
.comment-date {
color: var(--line-dark-gray);
font-size: 14px; /* フォントサイズを大きく */
}
.comment-content {
line-height: 1.7;
font-size: 16px; /* フォントサイズを大きく */
}
.comment-content p {
margin-bottom: 12px;
}
/* 履歴詳細 */
.journal-details {
background-color: rgba(6, 199, 85, 0.03);
padding: 12px;
border-radius: var(--border-radius-small);
margin-top: 10px;
}
.journal-detail {
display: flex;
margin-bottom: 4px;
font-size: 15px; /* フォントサイズを大きく */
}
.journal-property {
font-weight: 500;
width: 120px;
color: var(--line-dark-gray);
}
.journal-value {
flex: 1;
}
.journal-old-value {
text-decoration: line-through;
color: var(--line-error);
margin-right: 8px;
}
.journal-new-value {
color: var(--line-success);
}
/* コメント追加フォーム */
.add-comment {
background-color: var(--line-white);
border-radius: var(--border-radius-medium);
padding: 20px;
box-shadow: var(--shadow-small);
margin-top: 20px;
}
.add-comment h3 {
font-size: 18px; /* フォントサイズを大きく */
margin-bottom: 16px;
}
textarea.comment-textarea {
width: 100%;
border: 1px solid var(--line-mid-gray);
border-radius: var(--border-radius-small);
padding: 12px;
min-height: 120px;
font-family: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', Meiryo, sans-serif;
font-size: 16px; /* フォントサイズを大きく */
resize: vertical;
margin-bottom: 16px;
}
textarea.comment-textarea:focus {
outline: none;
border-color: var(--line-primary);
box-shadow: 0 0 0 3px rgba(6, 199, 85, 0.1);
}
/* フッター */
#footer {
text-align: center;
padding: 20px;
color: var(--line-dark-gray);
font-size: 14px; /* フォントサイズを大きく */
border-top: 1px solid var(--line-mid-gray);
}
/* レスポンシブ対応 */
@media screen and (max-width: 899px) {
#main {
flex-direction: column;
}
#sidebar {
width: auto;
margin-right: 0;
margin-bottom: 20px;
}
#main-menu ul {
flex-wrap: wrap;
}
}
@media screen and (max-width: 599px) {
#header {
flex-direction: column;
text-align: center;
}
#header-left, #header-right {
flex-direction: column;
}
#quick-search {
margin: 10px 0;
}
#main-menu ul {
flex-direction: column;
}
#main-menu a {
text-align: center;
}
.contextual {
float: none;
margin-bottom: 20px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.contextual a {
margin: 5px 0;
flex: 1;
text-align: center;
}
}
</style>
</head>
<body>
<div id="wrapper">
<!-- ヘッダー -->
<div id="header">
<div id="header-left">
<div id="header-logo">LINE Redmine</div>
</div>
<div id="header-right">
<div id="quick-search">
<input type="text" placeholder="検索...">
</div>
<div id="account">
<a href="#">マイアカウント</a>
<a href="#">ログアウト</a>
</div>
</div>
</div>
<!-- トップメニュー -->
<div id="top-menu">
<ul>
<li><a href="#">ホーム</a></li>
<li><a href="#" class="selected">マイページ</a></li>
<li><a href="#">プロジェクト</a></li>
<li><a href="#">管理</a></li>
<li><a href="#">ヘルプ</a></li>
</ul>
</div>
<!-- メインメニュー -->
<div id="main-menu">
<ul>
<li><a href="#">概要</a></li>
<li><a href="#">活動</a></li>
<li><a href="#">ロードマップ</a></li>
<li><a href="#" class="selected">チケット</a></li>
<li><a href="#">Wiki</a></li>
<li><a href="#">ファイル</a></li>
<li><a href="#">設定</a></li>
</ul>
</div>
<!-- メインコンテンツ -->
<div id="main">
<!-- サイドバー -->
<div id="sidebar">
<h3>プロジェクト</h3>
<div class="project-tags">
<a href="#" class="project-tag selected">LINE デザインシステム</a>
<a href="#" class="project-tag">モバイルアプリ</a>
<a href="#" class="project-tag">認証システム</a>
<a href="#" class="project-tag">API開発</a>
<a href="#" class="project-tag">マーケティング</a>
</div>
<h3>最近のチケット</h3>
<div class="recent-issues">
<a href="#" class="issue-tag"><span class="issue-id">#123</span>ボタンスタイル</a>
<a href="#" class="issue-tag"><span class="issue-id">#122</span>カラースキーム</a>
<a href="#" class="issue-tag"><span class="issue-id">#121</span>バリデーション</a>
<a href="#" class="issue-tag"><span class="issue-id">#120</span>アイコンセット</a>
<a href="#" class="issue-tag"><span class="issue-id">#119</span>ドキュメント</a>
</div>
</div>
<!-- コンテンツ -->
<div id="content">
<div class="contextual">
<a href="#" class="button-outline">時間を記録</a>
<a href="#" class="button-outline">ウォッチ</a>
<a href="#" class="button-outline">コピー</a>
<a href="#" class="button">編集</a>
</div>
<div class="issue-overview">
<div class="issue-title">
<span class="issue-id">#123</span>
<span>プラットフォーム全体のボタンスタイリングを統一するための更新</span>
</div>
<span class="status-tag status-進行中">進行中</span>
<!-- メタ情報を横並びに -->
<div class="issue-meta">
<div class="issue-meta-item">
<span class="issue-meta-label">ステータス:</span>
<span class="issue-meta-value">進行中</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">優先度:</span>
<span class="issue-meta-value">通常</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">担当者:</span>
<span class="issue-meta-value">中村 優太</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">カテゴリ:</span>
<span class="issue-meta-value">デザイン</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">バージョン:</span>
<span class="issue-meta-value">2.5.0</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">開始日:</span>
<span class="issue-meta-value">2025/04/28</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">期日:</span>
<span class="issue-meta-value">2025/05/15</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">進捗率:</span>
<span class="issue-meta-value">60%</span>
</div>
<div class="issue-meta-item">
<span class="issue-meta-label">作業時間:</span>
<span class="issue-meta-value">10時間 / 20時間</span>
</div>
</div>
</div>
<div class="tabs">
<ul>
<li><a href="#" class="selected">概要</a></li>
<li><a href="#">活動</a></li>
<li><a href="#">作業時間</a></li>
</ul>
</div>
<div class="issue-description">
<div class="description-title">説明</div>
<div class="description-content">
<p>プラットフォーム全体でボタンのスタイリングを統一する必要があります。現在、複数のボタンスタイルが使用されており、ユーザーや開発者に混乱を招いています。</p>
<p>以下のボタンタイプを更新する必要があります:</p>
<ul>
<li>プライマリアクション(ソリッドグリーン)</li>
<li>セカンダリアクション(アウトラインスタイル)</li>
<li>ターシャリーアクション(テキストのみ)</li>
<li>破壊的アクション(赤)</li>
<li>すべてのボタンの無効状態</li>
</ul>
<p>各ボタンタイプは、デザインシステムのガイドラインに従い、角丸、パディング、タイポグラフィ、トランジションを統一する必要があります。</p>
<p>受け入れ基準:</p>
<ul>
<li>すべてのボタンがデザインシステムに基づいて一貫したスタイリングを使用していること</li>
<li>ボタンが様々な画面サイズに適切に対応すること</li>
<li>フォーカスとホバー状態が適切に実装されていること</li>
<li>新しいボタン標準に関するドキュメントが更新されていること</li>
<li>すべての主要インターフェースでの実装が完了していること</li>
</ul>
</div>
</div>
<div class="comments">
<div class="comment">
<div class="comment-header">
<div class="comment-author">
<img src="/api/placeholder/40/40" alt="アバター" />
<span>金 進</span>
</div>
<div class="comment-date">2025/04/28 09:15</div>
</div>
<div class="comment-content">
<p>ボタンスタイリングの作業を追跡するためにこのチケットを作成しました。参考用にデザインシステムの仕様を添付しています。</p>
</div>
</div>
<div class="comment">
<div class="comment-header">
<div class="comment-author">
<img src="/api/placeholder/40/40" alt="アバター" />
<span>中村 優太</span>
</div>
<div class="comment-date">2025/04/29 10:30</div>
</div>
<div class="comment-content">
<p>この課題を担当します。すでにCSSコンポーネントライブラリに取り組んでいるので、これらのボタンスタイルも組み込みます。</p>
<div class="journal-details">
<div class="journal-detail">
<div class="journal-property">ステータス</div>
<div class="journal-value">
<span class="journal-old-value">新規</span>
<span class="journal-new-value">進行中</span>
</div>
</div>
<div class="journal-detail">
<div class="journal-property">担当者</div>
<div class="journal-value">
<span class="journal-old-value">-</span>
<span class="journal-new-value">中村 優太</span>
</div>
</div>
</div>
</div>
</div>
<div class="comment">
<div class="comment-header">
<div class="comment-author">
<img src="/api/placeholder/40/40" alt="アバター" />
<span>田中 明</span>
</div>
<div class="comment-date">2025/05/01 14:20</div>
</div>
<div class="comment-content">
<p>@中村さん - キーボードアクセシビリティのためのフォーカス状態も確実に実装してください。以前の実装ではこの部分に問題がありました。</p>
</div>
</div>
<div class="comment">
<div class="comment-header">
<div class="comment-author">
<img src="/api/placeholder/40/40" alt="アバター" />
<span>中村 優太</span>
</div>
<div class="comment-date">2025/05/01 15:45</div>
</div>
<div class="comment-content">
<p>@田中さん - はい、デザインにはフォーカス状態も含めています。ボタンにフォーカスが当たっていることを明確にするため、わずかな影効果を持つフォーカスリングを実装しています。現在の進捗を反映して完了率を更新しました。</p>
<div class="journal-details">
<div class="journal-detail">
<div class="journal-property">進捗率</div>
<div class="journal-value">
<span class="journal-old-value">30%</span>
<span class="journal-new-value">60%</span>
</div>
</div>
</div>
</div>
</div>
<div class="comment">
<div class="comment-header">
<div class="comment-author">
<img src="/api/placeholder/40/40" alt="アバター" />
<span>佐藤 春子</span>
</div>
<div class="comment-date">今日 11:05</div>
</div>
<div class="comment-content">
<p>更新されたボタンデザインは素晴らしいですね!モバイルでテストしてみましたが、様々な画面サイズでうまく機能しています。一つの提案:モバイルでのタップターゲットサイズを少し大きくして、押しやすくすることはできますか?</p>
</div>
</div>
</div>
<div class="add-comment">
<h3>コメントを追加</h3>
<textarea class="comment-textarea" placeholder="コメントを入力してください..."></textarea>
<button class="button">追加</button>
</div>
</div>
</div>
<!-- フッター -->
<div id="footer">
Powered by Redmine © 2025 LINE Redmineテーマ
</div>
</div>
</body>
</html>
(3-3/4)