diff --git a/frontend/src/app/features/dependencies/dependency-list/dependency-list.component.html b/frontend/src/app/features/dependencies/dependency-list/dependency-list.component.html
new file mode 100644
index 0000000..b06aab5
--- /dev/null
+++ b/frontend/src/app/features/dependencies/dependency-list/dependency-list.component.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
{{ error }}
+
+
0" class="table-container">
+
+
+
+ | Name |
+ Type |
+ Application |
+ Status |
+ Validity Period |
+ Actions |
+
+
+
+
+ | {{ dep.name }} |
+ {{ dep.dependencyType.typeName }} |
+ {{ dep.application.name }} |
+
+
+ {{ getStatusLabel(dep.status) }}
+
+ ({{ dep.daysUntilExpiration }} days)
+
+
+ |
+
+
+ {{ dep.validityStartDate ? (dep.validityStartDate | date:'mediumDate') : '-' }}
+ →
+ {{ dep.validityEndDate ? (dep.validityEndDate | date:'mediumDate') : 'Indefinite' }}
+
+ -
+ |
+
+
+
+
+ |
+
+
+
+
+
+
+ No dependencies found.
+
+
+
1" class="pagination">
+
+ Page {{ page + 1 }} of {{ totalPages }} ({{ totalElements }} total)
+
+
+
\ No newline at end of file
diff --git a/frontend/src/app/features/dependencies/dependency-list/dependency-list.component.scss b/frontend/src/app/features/dependencies/dependency-list/dependency-list.component.scss
new file mode 100644
index 0000000..d36f0fe
--- /dev/null
+++ b/frontend/src/app/features/dependencies/dependency-list/dependency-list.component.scss
@@ -0,0 +1,167 @@
+.container {
+ max-width: 1400px;
+ margin: 0 auto;
+ padding: 2rem;
+}
+
+.header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 1.5rem;
+
+ h1 { margin: 0; }
+}
+
+.filters {
+ background: white;
+ padding: 1.5rem;
+ border-radius: 8px;
+ margin-bottom: 1.5rem;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+}
+
+.filter-row {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 1rem;
+}
+
+.filter-group {
+ label {
+ display: block;
+ margin-bottom: 0.5rem;
+ font-weight: 500;
+ color: #555;
+ }
+
+ .filter-select {
+ width: 100%;
+ padding: 0.75rem;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ font-size: 1rem;
+
+ &:focus {
+ outline: none;
+ border-color: #3f51b5;
+ }
+ }
+}
+
+.btn-primary {
+ background-color: #3f51b5;
+ color: white;
+ border: none;
+ padding: 0.75rem 1.5rem;
+ border-radius: 4px;
+ cursor: pointer;
+
+ &:hover { background-color: #303f9f; }
+}
+
+.loading, .error, .empty {
+ text-align: center;
+ padding: 2rem;
+ color: #666;
+}
+
+.error { color: #f44336; }
+
+.table-container {
+ overflow-x: auto;
+ background: white;
+ border-radius: 8px;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+}
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+
+ th, td {
+ padding: 1rem;
+ text-align: left;
+ border-bottom: 1px solid #ddd;
+ }
+
+ th {
+ background-color: #f5f5f5;
+ font-weight: 600;
+ }
+
+ tbody tr:hover { background-color: #f9f9f9; }
+}
+
+.status-badge {
+ padding: 0.25rem 0.75rem;
+ border-radius: 12px;
+ font-size: 0.875rem;
+ font-weight: 500;
+
+ &.status-active {
+ background-color: #e8f5e9;
+ color: #388e3c;
+ }
+
+ &.status-expiring {
+ background-color: #fff3e0;
+ color: #f57c00;
+ }
+
+ &.status-expired {
+ background-color: #ffebee;
+ color: #c62828;
+ }
+
+ &.status-not-valid {
+ background-color: #f5f5f5;
+ color: #616161;
+ }
+}
+
+.actions {
+ display: flex;
+ gap: 0.5rem;
+}
+
+.btn-sm {
+ padding: 0.5rem 1rem;
+ border: none;
+ border-radius: 4px;
+ cursor: pointer;
+ background-color: #2196f3;
+ color: white;
+ font-size: 0.875rem;
+
+ &:hover { background-color: #1976d2; }
+
+ &.btn-danger {
+ background-color: #f44336;
+ &:hover { background-color: #d32f2f; }
+ }
+}
+
+.pagination {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 1rem;
+ margin-top: 2rem;
+
+ button {
+ padding: 0.5rem 1rem;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ background: white;
+ cursor: pointer;
+
+ &:hover:not(:disabled) { background-color: #f5f5f5; }
+ &:disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
+ }
+ }
+
+ span { color: #666; }
+}
\ No newline at end of file