Superfluous empty space at the bottom of notebook
- Dominant language
- Jupyter Notebook
- Stars
- 13.3k
- Forks
- 5.8k
- Avg merge
- 6d 11h
- Merged PRs (30d)
- 7
Description
## Description
Way too much empty space at the bottom of notebooks in Jupyter Notebook 7.
## Reproduce
1: Create new notebook
2: Create empty cells to fill the screen
2: Scroll down (by letting your mouse wheel run free, if you have such a mouse wheel).
3: Your entire screen is now filled with empty space and you have to scroll back up by hand to get to what you wanted: the last cell.

## Expected behavior
Same as any other text editor: scroll to the bottom of the existing content.

## Context
- Operating System and version: Ubuntu 22.04,
- Browser and version: Chrome 126
- Jupyter Notebook version: 7.1.1
Troubleshoot Output
$PATH:
/usr/local/cuda/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/local/go/binsys.path:
/usr/lib/python310.zip
/usr/lib/python3.10
/usr/lib/python3.10/lib-dynloadsys.executable:
sys.version:
3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]platform.platform():
Linux-5.15.0-91-generic-x86_64-with-glibc2.35which -a jupyter:
/usr/local/bin/jupyterpip list:
Package Version Editable project location
----------------------------------- --------------- -------------------------
adbc-driver-manager 1.1.0
adbc-driver-postgresql 1.1.0
aiofiles 23.2.1
aiohttp 3.9.3
aiosignal 1.3.1
annotated-types 0.7.0
ansi2html 1.9.1
anyio 4.3.0
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
armada_client 0.3.4
arrow 1.3.0
asttokens 2.4.1
async-lru 2.0.4
async-timeout 4.0.3
attrs 23.2.0
Babel 2.14.0
beautifulsoup4 4.12.3
benchmark 0.1
bleach 6.1.0
Brotli 1.1.0
bson 0.5.10
cached-property 1.5.2
cachetools 5.4.0
certifi 2024.2.2
cffi 1.16.0
chardet 5.2.0
charset-normalizer 3.3.2
click 8.1.7
clipboard 0.0.4
cloudpickle 3.0.0
comm 0.2.1
confluent-kafka 2.5.0
contourpy 1.2.0
cryptography 42.0.5
cycler 0.12.1
dash 2.10.2
dash-core-components 2.0.0
dash-html-components 2.0.0
dash-table 5.0.0
dataframe-dustins 0.0.1
debugpy 1.8.1
decorator 5.1.1
defusedxml 0.7.1
dill 0.3.8
docker 7.1.0
docopt 0.6.2
duckdb 1.0.1.dev5328
EasyProcess 1.1
entrypoint2 1.1
et-xmlfile 1.1.0
exceptiongroup 1.2.0
execnet 2.1.1
executing 2.0.1
fastjsonschema 2.19.1
filelock 3.15.4
Flask 2.1.2
fonttools 4.49.0
fqdn 1.5.1
frozenlist 1.4.1
ghdiff 0.4
google-auth 2.33.0
graphviz 0.20.1
greenlet 3.0.3
grpcio 1.58.0
grpcio-tools 1.58.0
gssapi 1.8.3
h11 0.14.0
hdfs 2.7.3
httpcore 1.0.4
httpx 0.27.0
human-id 0.2.0
hvac 2.3.0
idna 3.6
importlib_resources 6.4.0
inflate64 1.0.0
iniconfig 2.0.0
ipyaggrid 0.5.2
ipykernel 6.29.3
ipython 8.22.1
ipywidgets 8.1.2
isoduration 20.11.0
itsdangerous 2.1.2
jedi 0.19.1
Jinja2 3.1.3
joblib 1.3.2
json5 0.9.17
jsonpointer 2.4
jsonschema 4.21.1
jsonschema-specifications 2023.12.1
jupyter 1.0.0
jupyter_client 8.6.0
jupyter-console 6.6.3
jupyter_core 5.7.1
jupyter-dash 0.4.2
jupyter-events 0.9.0
jupyter-lsp 2.2.3
jupyter_server 2.12.5
jupyter_server_terminals 0.5.2
jupyterlab 4.1.2
jupyterlab_iframe 0.5.0
jupyterlab_pygments 0.3.0
jupyterlab_server 2.25.3
jupyterlab_widgets 3.0.10
kaleido 0.2.1
kiwisolver 1.4.5
krb5 0.5.1
kubernetes 30.1.0
llvmlite 0.42.0
Markdown 3.6
markdown-it-py 3.0.0
MarkupSafe 2.1.5
matplotlib 3.8.3
matplotlib-inline 0.1.6
mdurl 0.1.2
mistune 3.0.2
mondrian 0.1
multidict 6.0.5
multimethod 1.10
multivolumefile 0.2.3
mypy-extensions 1.0.0
mypy-protobuf 3.3.0
nbclient 0.9.0
nbconvert 7.16.1
nbformat 5.9.2
nest-asyncio 1.6.0
nodeenv 1.9.1
notebook 7.1.1
notebook_shim 0.2.4
numba 0.59.0
numexpr 2.10.0
numpy 1.26.4
oauthlib 3.2.2
openpyxl 3.1.2
overrides 7.7.0
packaging 23.2
pandas 2.2.1
pandera 0.19.3
pandocfilters 1.5.1
parso 0.8.3
pathlib 1.0.1
patsy 0.5.6
pem 23.1.0
pexpect 4.9.0
pillow 10.2.0
pip 24.0
pipdeptree 2.16.1
pkce 1.0.3
platformdirs 4.2.0
plotly 5.22.0
pluggy 1.5.0
polars 1.1.0
prometheus_client 0.20.0
prompt-toolkit 3.0.43
protobuf 4.25.4
protobuf3-to-dict 0.1.5
psutil 5.9.8
ptyprocess 0.7.0
pure-eval 0.2.2
py7zr 0.20.8
pyarrow 15.0.0
pyasn1 0.6.0
pyasn1_modules 0.4.0
pybcj 1.0.2
pycparser 2.21
pycryptodomex 3.20.0
pydantic 2.7.1
pydantic_core 2.18.2
Pygments 2.17.2
PyJWT 2.8.0
pyodbc 5.1.0
pyparsing 3.1.1
pyperclip 1.9.0
pyppmd 1.1.0
pyright 1.1.374
pyspnego 0.10.2
pytest 8.3.2
pytest-timeout 2.3.1
pytest-xdist 3.6.1
python-dateutil 2.9.0
python-json-logger 2.0.7
pytz 2024.1
pyunpack 0.3
PyYAML 6.0.1
pyzmq 25.1.2
pyzstd 0.15.9
qtconsole 5.5.1
QtPy 2.4.1
referencing 0.33.0
requests 2.31.0
requests-gssapi 1.3.0
requests-kerberos 0.14.0
requests-oauthlib 2.0.0
retrying 1.3.4
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rich 13.7.1
rpds-py 0.18.0
rsa 4.9
ruff 0.5.5
scikit-learn 1.5.1
scipy 1.12.0
semver 3.0.2
Send2Trash 1.8.2
setuptools 69.1.0
simplejson 3.19.2
six 1.16.0
sniffio 1.3.1
soupsieve 2.5
SQLAlchemy 2.0.32
stack-data 0.6.3
statsmodels 0.14.1
tabulate 0.9.0
tenacity 8.2.3
terminado 0.18.0
texttable 1.7.0
threadpoolctl 3.5.0
tinycss2 1.2.1
tomli 2.0.1
tornado 6.4
tornado-proxy-handlers 0.0.6
tqdm 4.66.2
traitlets 5.14.1
type_enforced 1.5.0
typeguard 4.1.5
types-protobuf 4.24.0.20240311
types-python-dateutil 2.8.19.20240106
typing_extensions 4.10.0
typing-inspect 0.9.0
tzdata 2024.1
uri-template 1.3.0
urllib3 2.2.1
wcwidth 0.2.13
webcolors 1.13
webencodings 0.5.1
websocket-client 1.7.0
Werkzeug 2.0.3
wheel 0.42.0
widgetsnbextension 4.0.10
wrapt 1.16.0
yarl 1.9.4
zstandard 0.22.0
Contributor guide
Research direction
The issue names no files, tests, or entry points. First reproduce the scrolling behavior in Jupyter Notebook 7.1.1 using the listed steps, then trace the notebook frontend's scroll handling and identify an appropriate regression test location. Done means scrolling stops at the bottom of the last cell without leaving excessive empty space.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100