diff --git a/src/app/shared/components/version-dropdown/version-dropdown.component.scss b/src/app/shared/components/version-dropdown/version-dropdown.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..92f55c5065d5f4537f311de93f3d1899268251be
--- /dev/null
+++ b/src/app/shared/components/version-dropdown/version-dropdown.component.scss
@@ -0,0 +1,47 @@
+.version-container button .material-icons {
+  font-size: 20px !important;
+}
+
+.version-container button {
+  position: relative;
+  font-size: 12px;
+  font-weight: 600;
+  padding-left: 8px;
+  padding-right: 8px;
+  font-family: "Open Sans", sans-serif;
+  border: 1px solid #d5d5d5;
+}
+
+.version-button {
+  border-radius: 2px !important;
+}
+
+.selected {
+  background: url("../../../../assets/images/validate_icon.png") no-repeat 95%
+    center;
+  background-color: #fff;
+}
+
+.mdc-list {
+  padding: 0px;
+  margin: 0px;
+}
+
+.mdc-list-item {
+  padding-left: 10px;
+}
+.mat-mdc-raised-button {
+  --mdc-protected-button-container-height: 30px;
+}
+
+::ng-deep.mat-mdc-menu-content {
+  padding: 0px !important;
+}
+.mdc-list-item--with-one-line {
+  height: 40px !important;
+  border-radius: 0px !important;
+}
+
+::ng-deep.mat-mdc-menu-panel {
+  width: 200px !important;
+}
diff --git a/src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts b/src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d08979c94af2be4847dff40749f0378a116bb721
--- /dev/null
+++ b/src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { VersionDropdownComponent } from './version-dropdown.component';
+
+describe('VersionDropdownComponent', () => {
+  let component: VersionDropdownComponent;
+  let fixture: ComponentFixture<VersionDropdownComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [VersionDropdownComponent]
+    })
+    .compileComponents();
+    
+    fixture = TestBed.createComponent(VersionDropdownComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/shared/components/version-dropdown/version-dropdown.component.ts b/src/app/shared/components/version-dropdown/version-dropdown.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7b335212e333d487b239dadd1b35353603f27c95
--- /dev/null
+++ b/src/app/shared/components/version-dropdown/version-dropdown.component.ts
@@ -0,0 +1,31 @@
+import { Component, EventEmitter, Input, Output } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { MatMenuModule } from '@angular/material/menu';
+import { Revision } from '../../models';
+import { MatListModule } from '@angular/material/list';
+import { MatButtonModule } from '@angular/material/button';
+import { MatIconModule } from '@angular/material/icon';
+
+@Component({
+  selector: 'gp-version-dropdown',
+  standalone: true,
+  imports: [
+    CommonModule,
+    MatMenuModule,
+    MatListModule,
+    MatButtonModule,
+    MatIconModule,
+  ],
+  templateUrl: './version-dropdown.component.html',
+  styleUrl: './version-dropdown.component.scss',
+})
+export class VersionDropdownComponent {
+  @Input() selectedDefaultRevision!: Revision;
+  @Input() revisionsList!: Revision[];
+  @Output() revisionChange: EventEmitter<Revision> =
+    new EventEmitter<Revision>();
+
+  onChangeVersion(revision: Revision) {
+    this.revisionChange.emit(revision);
+  }
+}