Giao diện đồ họa người dùng (tiếng Anh: graphical user interface, viết tắt là GUI) là một dạng giao diện người dùng cho phép giao tiếp với máy tính hay các thiết bị điện tử bằng hình ảnh và chữ viết thay vì chỉ là các dòng lệnh đơn thuần. GUI được sử dụng phổ biến trong máy tính, các thiết bị cầm tay, các thiết bị đa phương tiện, hoặc các linh kiện điện tử trong văn phòng, nhà ở,...
Phạm vi sử dụng thuật ngữ GUI hầu như chỉ được giới hạn trong các thiết bị có màn hình 2 chiều. Nó ít được sử dụng trong các thiết bị với giao diện có độ phân giải thấp như một số thiết bị chơi game (HUD được sử dụng nhiều hơn).
GUI được các nhà nghiên cứu tại Xerox PARC phát triển trong thập niên 1970. Ngày nay hầu hết các hệ điều hành máy tính nhiều người dùng đều sử dụng giao diện này.
Douglas Englebart[1] hiện được xem là cha đẻ của giao diện người dùng đồ họa lúc còn sơ khai. Sau khi tốt nghiệp ngành kĩ thuật điện vào năm 1948, Douglas làm việc tại Viện NACA (NACA Institute, tiền thân của NASA hiện giờ). Sau đó, với mong muốn được làm công việc có thể mang lại lợi ích cho toàn nhân loại, ông đã nghĩ đến việc xây dựng một chiếc máy có thể làm tăng trí tuệ con người.
Trong giai đoạn chiến tranh, Douglas làm việc với vai trò là một kiểm soát viên rađa để có thể hình dung ra một thiết bị hiển thị được xây dựng xoay quanh các ống tia cathode mà qua đó người dùng có thể xây dựng các mô hình thông tin một cách trực quan thông qua đồ họa, và họ có thể tương tác với bất cứ những gì họ nhìn thấy. Để có thể thực hiện được ý tưởng này, ông phải tìm nguồn tài trợ. Song, đó không phải là việc dễ dàng mà có thể thực hiện được trong thời gian ngắn.
Năm 1955, Douglas đạt được học vị tiến sĩ và vào làm việc tại Học viện Nghiên cứu Stanford (Standford Research Institute), và tại đó ông đã đạt được nhiều bằng sáng chế về "các thành phần tiểu hóa máy tính" (miniaturizing computer components). 1959, ông đã thuyết phục được Không quân Hoa Kỳ (United States Air Force) hỗ trợ quỹ cho ý tưởng của ông. 1962, ông cho xuất bản luận văn Augmenting Human Intellect[2] với nội dung chính là các ý tưởng mà ông đã ấp ủ. Qua luận văn này, ông khẳng định "máy tính không phải để thay thế trí tuệ con người, mà là để cải thiện nó". Một trong những ví dụ mà ông sử dụng trong luận văn này là một kiến trúc sư sử dụng một công cụ nào đó tương tự các phần mềm CAD ngày nay để thiết kế nên các tòa nhà.
Douglas và các cộng sự của ông tiếp tục làm việc để phát triển các ý tưởng và công nghệ này. Và vào năm 1968, một sự trình diễn công khai được thực hiện trước hơn 1000 các chuyên gia máy tính về những thành quả từ những ý tưởng ban đầu của ông.
Tiền thân của GUI được khai sinh bởi những nhà nghiên cứu tại Standford Research Institute - được dẫn đầu bởi Douglas Engelbart. Khi đó, họ phát triển việc sử dụng những siêu liên kết (hyperlinks) dựa trên chữ cho hệ thống trực tuyến (On-Line System), trong đó các liên kết được thao tác với một con chuột. Khái niệm siêu liên kết sau đó đã được các nhà nghiên cứu tại Xerox PARC mở rộng sang phạm vi đồ họa.
1963, Sketchpad, một hệ thống dựa trên con trỏ (pointer) được phát triển bởi Ivan Sutherland. Hệ thống này sử dụng một cây bút phát sáng để thao tác việc tạo và thao tác với các đối tượng trong các bản vẽ kĩ thuật.
Giao diện người dùng PARC gồm các thành phần đồ họa như cửa sổ (window), thực đơn (menu), nút kiểm tròn (radio button), ô kiểm vuông (check box) và các biểu tượng (icon).
Dựa trên hệ thống tiền thân, lần lượt các hệ thống đồ họa được ra đời. Năm 1981, mô hình điều hành máy tính dựa trên GUI đầu tiên được ra đời là Xerox 8010 Star Information System. Tiếp theo đó là Apple Lisa năm 1983, Macintosh 128K của Apple năm 1984, Atari ST và Commodore Amiga năm 1985. Việc điều khiển đồ họa bằng lệnh (command) được khai sinh khi IBM cho ra đời Common User Access (1987), trong đó các chuỗi lệnh khác nhau sẽ được áp dụng cho các chương trình khác nhau như: phím F3 sẽ kích hoạt chế độ hỗ trợ trong WordPerfect, nhưng nó sẽ đóng chương trình trong các ứng dụng khác của IBM.
Tiếp nối sự phát triển của các hệ thống GUI là sự ra đời của các keyboard overlays (tạm dịch, bàn phím cho phép điều chỉnh bố cục chức năng). Đó là những mảnh giấy hay plastic được đặt trong những chỗ trống giữa các phím, nó có nhiệm vụ cung cấp cho người dùng chức năng của các phím khác nhau của các ứng dụng đã được xác định. Có thể hình dung những bàn phím như vậy với những keystroke ngày nay như: Control-Alt-Delete sẽ mở Task Manager trong hệ điều hành Windows, còn trong các hệ thống Unix thì sẽ tắt máy tính.
Các hệ thống GUI phổ biến ngày nay là Microsoft Windows, Mac OS X, X Window System trên các PC (Personal Computer), laptop. Ngoài ra còn có sự góp mặt của các thiết bị di động như Symbian, BlackBerry OS, Android, iOS. Các hệ thống này đều được phát triển dựa trên những ý tưởng ban đầu của Xerox, cho nên chúng gần như có các khái niệm tương tự nhau (như button, radio button, menu...)
Một hệ thống GUI là sự kết hợp của các công nghệ, thiết bị để cung cấp cho người dùng một nền tảng cho phép người sử dụng có thể tương tác với nó.
Một chuỗi các thành phần của GUI tuân theo một ngôn ngữ trực quan (visual language) để biểu diễn thông tin được lưu trữ trong các máy tính. Thông dụng nhất khi kể đến sự kết hợp các thành phần như vậy là mô hình WIMP (window, icon, menu, pointing device) trong các máy tính cá nhân.